知识大全 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相关参考
循环语句 WHILE(条件) 语句 DO 语句 WHILE(条件) FOR(初始条件;终结条件;语句) 语句 函数 所有算法以如下函数形式表示
PHP快速入门教程之for循环 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!<><head><ti
入门基础-VC网络编程入门 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 对于许多初学者来说网络
ASP.NET数据库编程快速入门之技术慨述 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 大约有
VC++2005console程序错误 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 今天在用V
VC++Oracle开发入门教程 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! ORACLE数据
知识大全 VC2005中System::String转换为std::string
VC2005中System::String转换为std::string 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶
把其他C/C++编译器集成到VC2005中 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在Vi
VC.NET的Direct3D极速入门宝典 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 听说D
知识大全 asp do while 循环语法与do while实例教程
在dowhile循环的另一种常用后Next循环的循环在dowhile循环语句重复语句 块的次数不定重复的陈述或者当条件为真或直到条件变为True语法如下所示 Do[While|Until]co