知识大全 VC#2005快速入门之使用do语句

Posted 语句

篇首语:宁可枝头抱香死,何曾吹落北风中。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 VC#2005快速入门之使用do语句相关的知识,希望对你有一定的参考价值。

VC#2005快速入门之使用do语句  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  while和for语句都在循环开始的时候测试它们的布尔表达式 这意味着假如在首次测试时 布尔表达式就求值为false 那么循环主体一次都不会运行 do语句则不同 它的布尔表达式是在每次重复之后求值的 所以主体至少会执行一次

  do语句的语法如下(不要忘记最后的分号)

  do  statement  while (booleanExpression);

  如果循环主体由多个语句构成 请使用一个语句块 下面是在控制台上输出 ~ 的那个例子的do语句版本

  int i = ;  do     Console WriteLine(i);   i++;    while (i != );

  break和continue语句

  在前文我们曾用break语句来跳出switch语句 除此之外 还可以使用break语句来跳出一个循环 执行break之后 系统会立即终止循环 并从循环之后的第一个语句继续执行 在这种情况下 循环的 更新 和 继续 条件都不会重新判断

  与此相反 continue语句会造成当前循环结束 并立即开始下一次循环(在对布尔表达式进行重新求值之后) 下面是在控制台上输出 ~ 的那个例子的另一个版本 这一次将使用break和continue语句

  int i = ;

  while (true)     Console WriteLine( continue + i);   i++;   if (i != )    continue;   else    break; 

  这段代码看起来让人非常难受 许多编程指南都建议小心使用continue 或者根本不要使用它 否则很容易造成难以理解的代码 continue的行为也令人捉摸不定 例如 假如在一个for语句中执行continue 那么会在运行了for语句的 更新 部分之后 才开始下一次循环

  在下面的例子中 我们将写一个do语句来将一个数字转换成字符串形式

  ·使用do语句

   在Visual Studio 中打开DoStatement项目 它位于My Documents文件夹下的\\Microsoft Press\\Visual CSharp Step by Step\\Chapter \\DoStatement子文件夹中

  选择 调试 | 开始执行(不调试)

  Visual Studio 将开始生成并运行Windows应用程序

  应用程序将显示一个窗体 其中包含两个文本框和一个Show Steps(显示步骤)按钮 在上方的文本框中输入一个正数(我们使用的算法还不支持负数) 然后单击Show Steps按钮 下方的文本框就会显示创建这个数字的字符串形式所需的步骤

  注意 这个简单的例子展示了如何使用do循环将数字转换成字符串 但要注意一点 Framework提供了Convert ToString方法来做同样的事情 在自己的应用程序中执行类似任务时 应该使用该方法

   作为一个例子 请在上方的文本框中输入 然后单击Show Steps按钮

  在下方的文本框中 将显示创建 的字符串形式所经历的步骤 如图 所示

  图 单击Show Steps按钮之后将显示具体步骤

   关闭窗口 返回Visual Studio 编程环境

   在 代码和文本编辑器 窗口中显示Form cs的代码

  找到showSteps_Click方法 该方法会在用户单击了Show Steps按钮之后开始运行

   该方法包含以下语句

  int amount = System Int Parse(number Text);

  steps Text = ;

  string current = ;

  do

  

  int digitCode = + amount % ;

  char digit = Convert ToChar(digitCode);

  current = digit + current;

  steps Text += current + \\r\\n ;

  amount /= ;

  

  while (amount != );

  注意 \\r代表一个回车符 在多行文本框控件中输出文本时 需要同时输出一个回车符和一个换行符 才能跳到下一行 并使光标定位到行首 否则 以后输出的文本将出现在同一行上

  第一个语句使用System Int 类的Parse方法 将number文本框的Text属性中存储的字符串值转换成int值

  int amount = System Int Parse(number Text);

  第二个语句清除下方的文本框(称为steps)中显示的文本 这一次的做法是将Text属性设为一个空字符串

  steps Text = ;

  第三个语句声明一个名为current的字符串变量 并把它初始化为空字符串

  string current = ;       这个方法真正的工作是由do语句来执行的 它从第 个语句开始

  do          while (amount != );

  我们将利用整数算术操作符和取模操作符 使用 来反复除amount变量 每次获得的余数都是正在构造的字符串的下一个数位 最终 amount将缩减为 值 循环将结束 注意 循环主体至少会执行一次 假如用户输入的就是数字 这个 至少执行一次 的行为就正是我们所需要的

  do循环中的第 个语句是

  int digitCode = + amount % ;

  该语句声明一个名为digitCode的int变量 并把它初始化为以下表达式的结果

   + amount %

  这个表达式需要稍微解释一下! 的值是指字符 的值 在Windows使用的字符集中 该字符等于整数值 (每个字符都有它自己的惟一的字符代码 这是一个整数值) 类似地 的字符代码是 的字符代码是 以此类推

  amount % 的值是用 来除amount之后得到的余数 例如 假如amount包含的值是 那么 % 的结果是 ( 除以 的结果是商 余 ) 因此 假如amount等于 那么表达式 + amount % 就等同于 + 结果是 这是字符 的字符代码 要注意的是 +操作符在这里执行了一次隐式强制类型转换 它将 转换成整数值 使整个表达式能够求值

  do循环中的第 个语句是

  char digit = Convert ToChar(digitCode);

  该语句声明了一个名为digit的char变量 并把它初始化成Convert ToChar(digitCode)这个方法调用的结果 调用该方法 将返回与参数指定的字符代码对应的一个字符 换言之 Convert ToChar( + )的求值结果就是

  do循环中的第 个语句是

  current = digit + current;

  该语句将刚才计算出来的字符变量digit附加到字符串current之前 注意 该语句不能替换为current += digit 否则就会将digit附加到current之后

  do循环中的第 个语句是

  steps Text += current + \\r\\n ;

  该语句的作用是在Steps文本框的Text属性中附加另一个要显示的步骤

  do循环中的最后一个语句是

  amount /= ;

  该语句等同于amount = amount / ; 如果amount的值是 那么在运行上述语句之后 amount的值将变成 注意 每一次重复do语句 都会从amount中移除最后一个数位 并将那个数位附加到current字符串之前

  在最后一个练习中 将使用Visual Studio 调试器来逐步执行上述do语句 以帮助你理解它的工作过程

  ·逐步执行do语句

   在 代码和文本编辑器 窗口中找到showSteps_Click方法

   将鼠标移至showSteps_Click方法的第一个语句

  第一个语句是

  int amount = System Int Parse(number Text);

   右击第一个语句的任何地方 从弹出菜单中选择 运行到光标处

  Visual Studio 将生成并运行应用程序

   窗体出现后 在上方的文本框中输入 然后单击Show Steps按钮

  程序将暂停运行 Visual Studio 将进入调试模式 代码和文本编辑器 窗口左侧将出现一个黄箭头 标记出当前语句

   如果 调试 工具栏不可见 请显示它(选择 视图 | 工具栏 | 调试 ) 在 调试 工具栏上 请单击 断点 按钮旁边的下拉列表箭头

  随后会打开如图 所示菜单

  图 单击 断点 按钮旁边的下拉列表箭头

   从这个菜单中选择 局部变量

  随后会打开 局部变量 窗口 其中显示了当前方法中的局部变量的名称 值和类型 其中的amount是局部变量 注意 amount的值目前是 如图 所示

   单击 调试 工具栏上的 逐语句 按钮

  调试器将运行当前语句

  int amount = System Int Parse(number Text);

  在 局部变量 窗口中 amount的值将变成 黄箭头会指向下一个语句

   继续单击 逐语句 按钮

  调试器将运行以下语句

  steps Text = ;

  该语句不影响 局部变量 窗口的显示 因为steps是窗体的一个字段 而不是一个局部变量 黄箭头继续指向下一个语句

  图 局部变量 窗口

   继续单击 逐语句 按钮

  调试器将运行以下语句

  string current = ;

  黄箭头将指向do循环的起始大括号

   继续单击 逐语句 按钮

  黄箭头将指向do循环中的第一个语句 do循环包含它自己的两个局部变量 即digitCode和digit 注意 这些局部变量已经在 局部变量 窗口中显示 而且digitCode的值为

   继续单击 逐语句 按钮

  调试器将运行以下语句

  int digitCode = + amount % ;

  在 局部变量 窗口中 digitCode的值将变成 这是由于表达式amount % 的结果为 (amount的值为 ) 而 的字符代码是 ( + )

   继续单击 逐语句 按钮

  调试器将运行以下语句

  char digit = Convert ToChar(digitCode);

  在 局部变量 窗口中 digit的值将变成 注意在 局部变量 窗口中 char值是同时使用字符代码值(本例是 )和对应的字符形式(本例是 )来显示的 黄箭头将指向do循环的下一个语句

  注意 在 局部变量 窗口中 current变量的值是 (即为空)

   继续单击 逐语句 按钮

  调试器将运行以下语句

  current = current + digit;

  在 局部变量 窗口中 current变量的值将变成

   继续单击 逐语句 按钮

  调试器将运行以下语句

  steps Text += current + \\r\\n ;

  该语句将在steps文本框中显示文本 并后跟一个回车符和一个换行符 确保以后的输出将从文本框的下一行开始

  在 局部变量 窗口中 amount的值仍然为

   继续单击 逐语句 按钮

  调试器将运行以下语句

  amount /= ;

  在 局部变量 窗口中 amount的值将变成 黄箭头指向do循环的结束大括号

   继续单击 逐语句 按钮

  黄箭头将指向while语句

   继续单击 逐语句 按钮

  调试器将运行以下语句

  while (amount != );

  amount的值是 表达式 != 将求值为true 所以将进行下一次循环 黄箭头将跳回do循环的起始大括号

   继续单击 逐语句 按钮

  黄箭头将指向do循环中的第一个语句

   再单击 逐语句 按钮 次 观察 局部变量 窗口中的局部变量的值发生的变化 在 局部变量 窗口中 amount的值最终将变成 而current的值变成

  黄箭头将指向do循环的循环继续条件

  while (amount != );

  amount的值目前为 所以表达式amount != 求值为false do循环应该终止

   继续单击 逐语句 按钮

  调试器将运行以下语句

  while (amount != );

  如同我们预期的那样 dot循环终止 黄箭头移至showSteps_Click方法的结束大括号

   单击 调试 工具栏上的 继续 按钮

  窗体将出现 并显示为了创建 的字符串形式所经历的 个步骤 和

   关闭窗体 返回Visual Studio 编程环境

cha138/Article/program/net/201311/11749

相关参考

知识大全 数据结构概论之算法的描述和分析[2]

  循环语句    WHILE(条件)    语句    DO     语句    WHILE(条件)    FOR(初始条件;终结条件;语句)     语句  函数    所有算法以如下函数形式表示

知识大全 PHP快速入门教程之for循环

PHP快速入门教程之for循环  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!<><head><ti

知识大全 入门基础-VC网络编程入门

入门基础-VC网络编程入门  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  对于许多初学者来说网络

知识大全 ASP.NET数据库编程快速入门之技术慨述

ASP.NET数据库编程快速入门之技术慨述  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  大约有

知识大全 VC++2005 console 程序错误

VC++2005console程序错误  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  今天在用V

知识大全 VC++ Oracle 开发入门教程

VC++Oracle开发入门教程  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  ORACLE数据

知识大全 VC2005中System::String转换为std::string

VC2005中System::String转换为std::string  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶

知识大全 把其他C/C++编译器集成到VC2005中

把其他C/C++编译器集成到VC2005中  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在Vi

知识大全 VC.NET的Direct3D极速入门宝典

VC.NET的Direct3D极速入门宝典  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  听说D

知识大全 asp do while 循环语法与do while实例教程

  在dowhile循环的另一种常用后Next循环的循环在dowhile循环语句重复语句  块的次数不定重复的陈述或者当条件为真或直到条件变为True语法如下所示  Do[While|Until]co