int x = 13;
while(x >= 4) {
if (x % 2 == 1) {
System.out.println(x);
}
x = x - 3;
}
我知道这样做的输出,它是13和7,会有人照顾,因为它是怎么来的13和7While循环码输出
int x = 13;
while(x >= 4) {
if (x % 2 == 1) {
System.out.println(x);
}
x = x - 3;
}
我知道这样做的输出,它是13和7,会有人照顾,因为它是怎么来的13和7While循环码输出
13 % 2 = 1
因此,您打印13
。 Now x = 10
。 10 % 2 = 0
,所以你不打印10
。 Now x = 7
。 7 % 2 = 1
,所以你打印7. 现在x = 4
。 4 % 2 = 0
; 现在x = 1
和循环停止。
%
运算符是模运算符。这将打印除以两个数字时的余数。例如14/3 = 4 remainder 2
,所以13 % 4 = 2
。
Ahhhh我明白了,这很简单,谢谢你的回答,我会尽快接受。 – 2013-04-10 07:00:28
首先x是13,是不是说明> =那么4?是。输入while循环。是13%2 == 1。是。打印x(打印13)。那么x = x-13,x变成10.是10> = 4?是。 ....等等。
你不明白什么?
在第一次迭代中,x=13
,13%2=1
因此它打印13
。秒迭代,x=10
(x=x-3
)10%2=0
,没有打印。第三次迭代x=7
(10-3
),7%2=1
因此打印出7。
之后,x = 4因此没有任何内容被打印,并且x=1
退出循环。
壳体1:
---> x = 13;
while(true) // 13 >= 4
if(true) // 13%2 = 1 which is 1==1 is true
then print x
reduce x by 3 // now x ==10
壳体2:
---> x = 10;
while(true) // 10 > =4
if(false) // 10 % 2 = 0, 0 == 1 is false
skip
reduce x by 3// now x == 7
壳体3:
---> x =7;
while(true) // 7 > = 4
if(true) //7 % 2 ,1==1 is true
print x;
reduce x by 3 // x == 4
壳体4:
---> x =4;
while(true) // 4 > = 4
if(false) //4 % 2 ,0==1 is false
skip
reduce x by 3 // x == 4
案例5:
---> x =1;
while(false) // 7 > = 4
skip
操作总结:
**%** finds remainder
//结果如果RHS操作数是0
**>=** greater than or equals
你知道什么''%手段是不确定的?这是[模数运算符](http://mindprod.com/jgloss/modulus.html)。要了解程序的功能,请按照您的步骤进行操作,并在每张纸上写上一张纸。 – Jesper 2013-04-10 06:54:07
它有什么问题,它工作正常, 首先它';;检查13并打印它,然后是10,然后是7并打印它,然后是4 – 2013-04-10 06:54:55
用x替换值13,10等等。现在按照说明和它在笔记本上打印的内容。 – sakthisundar 2013-04-10 06:55:41