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