為什么while雙重循環是這樣的結果?
x=1 y=1 while?True: ????while?y<9: ????????x=x+1 ????????y=y+1 ????????print?x*10+y
上面是我的代碼和結果,但是和它不應該是循環輸出64個數出來嗎?
x=1 y=1 while?True: ????while?y<9: ????????x=x+1 ????????y=y+1 ????????print?x*10+y
上面是我的代碼和結果,但是和它不應該是循環輸出64個數出來嗎?
2017-11-13
舉報
2017-11-13
這是你的程序執行流程:
x==2,y==2,x*10+y==22
x==3,y==3,x*10+y==33
...
x==9,y==9(y之前為8,符合內層循環條件y<9,進入內存循環執行y=y+1,y等于9),x*10+y==99
由于y==9,不滿足內層循環條件y<9,所以跳出內層循環。由于內層循環后面已經沒有代碼了,所以程序然后判斷是否符合外層循環條件,由于符合外層循環條件,所以繼續執行下一條語句,即判斷是否符合內層循環條件,由于不符合內層循環條件(y==9,不滿足y<9),所以不能執行內層循環的打印語句。
可以改為:
2017-11-13
x=1
y=1
#這樣才是8*8次循環,共輸出64個數,之前只有里面while做8次循環
while x<9:
? ? x = x + 1 ?
????while?y<9:
????????y=y+1
????????print?x*10+y
2017-11-13
不是寫錯了,就是寫錯了