このコードではforループ条件で& &を使用しています。それは4回反復され、その結果「合計= 20」となる。 & &条件の左側が真であるため、右側が偽になるとループが終了するので、5回反復すると思います。Java短絡混乱
基本的に私の質問は、「sum = 30」を作るのに4回ではなく5回繰り返すのですか?ありがとう
`int[] lst = {1,2,3,4,5,4,3,2,1};
int sum = 0;
for (int frnt = 0, rear = lst.length - 1;
frnt < 5 && rear >= 5; frnt++, rear--){
sum = sum + lst[frnt] + lst[rear];
System.out.println("frnt: " + frnt);
System.out.println("rear: " + rear);
System.out.println();
}
System.out.print(sum);`
&&は*と*です。つまり、*両方の条件がtrue *である必要があり、falseの場合は条件が失敗します。 *これとAND *はどちらも真でなければなりません。 –
私は「両方の条件が真でなければならない」と思っていました。 &&は短絡で、 'と'は最初のものが真であれば2番目のものを評価しません。それは私がとにかく学んだものです。 – physicalhacker
これは、|| (または)。 &&の場合、短絡とは、最初の式がfalseの場合、式全体がすでに偽であるため、2番目の式を評価しないことを意味します。 – clcto