簡體   English   中英

無法弄清楚為什么會打印出 63

[英]Can't figure out why this prints out 63

遇到這段代碼並試圖解決它......但不太明白為什么它會打印出63?

public static void main(String[]args)
{
    int x = 0;
    int y = 0;
    for(int z= 0; z < 5; z++)
    {
        if ((++x > 2)&&(++y > 2))
        {
            x++;  
        }
    }
    System.out.println(x+""+y);
}

首先,++x 表示 x 被加 1,然后讀取 if 語句中的檢查。 所以第一次檢查時 x 是 1。

但是在 Java 中還有另一件事,如果你檢查兩個語句,就像你在下面做的那樣:

if ((++x > 2)&&(++y > 2))

如果第一個檢查失敗,第二個就不會被執行。

我在控制台中寫了輸出,對於所有的循環周期都有 -----:

x: 0
y: 0
z: 0
if: (false && (not executed) )
x: 1
-----
x: 1
y: 0
z: 1
if: (false && (not executed) )
x: 2
-----
x: 2
y: 0
z: 2
if: (true && false)
x: 3
y: 1
-----
x: 3
y: 1
z: 3
if: (true && false)
x: 4
y: 2
-----
x: 4
y: 2
z: 4
if: (true && true)
x: 5
y: 3
x: 6
-----
63

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM