(Java) 带条件的循环语句 - while


我们在研究for循环的时候说过,如果已知任何动作的重复次数,那么就可以使用for循环运算符来缩短程序。如果不知道重复次数怎么办。这种情况经常发生。
例如:
记住一个数字从十进制数字系统到任何其他数字系统的转换,我们需要将数字(然后是除法结果)除以数字系统的底数,直到我们得到零为止。我们将分享多少次还不得而知。并且有相当多的程序实现了这样的算法。 
这是如何实现的?
在编程中对于这种情况,有一个带条件的循环运算符。 
在 C 编程语言中,条件循环语句以单词 while 开头,并具有以下结构。 <前> <代码>同时(<条件>){ 循环体 } 我们已经知道:
- 条件是一个表达式,其结果可以是真或假(如在条件语句中)
- 循环体是需要重复的命令
- 如果循环体仅由一个
运算符组成,则花括号可以省略
运算符的工作原理:
1. 首先,程序计算 while 词后方括号中的条件。如果满足条件 (true),则程序执行循环体中包含的语句。
2. 和for循环一样,如果循环体只有一条语句,那么突出循环体的花括号可以省略。
3.循环体执行完成后,程序返回检查条件,再次检查。
4. 重复这些动作(检查条件——执行循环体)直到条件变为假。
5. 如果在第一次执行该运算符时,条件没有立即满足(假),则程序将永远不会执行循环体。

分析这个运算符的工作,应该清楚循环体必须包含一个影响条件的运算符。
例如,循环可以增加条件中使用的变量的值。

我们称之为“静默计数”
的程序示例 让程序代替我们来计数,例如,最多 10。
该程序应输出短语“开始”和“完成”,并在这些操作之间显示正在计算的数字。
像这样, 
开始
1 2 3 4 5 6 7 8 9 10
完成
使用 while 循环的程序看起来像这样。 <前> #include; 使用命名空间标准; 主要的() { 诠释我; 输出 << "开始\n"; 我=1; 而(我<=10) { 输出 <<我<<“ "; 我++; //影响条件中变量变化的运算符 } 输出 << “\n完成”; } 在这个程序中,我们给变量 i=1 赋值——原点
更进一步,只要我们有变量i的值不大于(即小于等于)我们需要的值,我们 
 1 - 显示变量i的值 
 2 - 将变量 i 的值增加 1 - 此运算符影响括号中条件的值。变量 i 递增,即在某个时候条件 i<=10 将变为假。当 i 等于 11 时会发生这种情况。此时循环体将不再执行,程序将执行循环后的下一条语句,即输出 << “\n完成”;

让我们尝试编写一个程序来解决以下问题:

您必须输入一个数字(小于3,000,000并确定其中的位数。

解决思路


我们只需要依次从数字中截去最后一位(这可以通过将数字减少 10 次,使用整数除以 10 来完成),每次我们都需要增加计数器。 
这样一来,我们把所有的数字都截掉之后,在计数器中我们就会得到这个数字的位数。
换句话说,该算法可以表述如下:
直到数字不为零,将其减少 10 次并将计数器增加 1。 <头> <正文> 该程序将如下所示。 <前> #include; 使用命名空间标准; 主要的() { intn,计数; 辛>>名词; 计数 = 0; 而(n!= 0) { 计数++; n = n / 10; } 输出 << “数字-” < 你需要牢记这个程序,因为。在此基础上,解决了其他许多与数字计算有关的问题。

数 (n) 计数器
123 0
12 1
1 2
0 3

任务

程序的输入是数据流—以零结尾的整数序列(零不包含在序列中)。 你需要找到这个序列的元素的总和。
 
求解算法
<前> 总和=0 input x // 输入第一个数字 while x != 0 // 条件中设置了输入结束标志,  nc // 也就是说,直到您输入零    sum = sum + x // 你可以用原始数字做一些事情。 // 您可以为某些条件添加数字检查等。    input x // 输入下一个数字 节 print sum //结果输出