循环代码输出

时间:2013-04-10 06:52:08

标签: java while-loop

 int x = 13; 
 while(x >= 4) { 
 if (x % 2 == 1) { 
 System.out.println(x); 
 } 

 x = x - 3; 
 }

我知道这个的输出,它是13和7,有人会解释它是如何成为13和7。

4 个答案:

答案 0 :(得分:2)

首先x是13,是> =然后是4?是。输入while循环。是13%2 == 1。是。打印x(打印13)。然后x = x-13,x变为10. 10> = 4?是。 ......等等。

答案 1 :(得分:2)

13 % 2 = 1因此,您打印13。 现在x = 1010 % 2 = 0,所以你不打印10。 现在x = 77 % 2 = 1,所以你打印7。 现在x = 44 % 2 = 0; 现在x = 1并且循环停止。

%运算符是模运算符。这会在分割两个数字时打印剩余部分。例如14/3 = 4 remainder 213 % 4 = 2

答案 2 :(得分:2)

你不明白什么?

在第一次迭代时,x=1313%2=1因此打印13。秒迭代,x=10x=x-310%2=0,不会打印任何内容。打印第三次迭代x=710-3),7%2=1 7。

之后,x = 4,因此不打印任何内容,x=1退出循环。

答案 3 :(得分:2)

案例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