K&R を読んでいるのですが、次のコードで混乱します。誰か説明してくれませんか。前もって感謝します。
int leap;
leap = year%4 == 0 && year%100 !=0 || year%400 == 0;
K&R を読んでいるのですが、次のコードで混乱します。誰か説明してくれませんか。前もって感謝します。
int leap;
leap = year%4 == 0 && year%100 !=0 || year%400 == 0;
true(1) または false(0) を返します。飛躍をブール値に設定することもできます。
int leap;
leap = year%4 == 0 && year%100 !=0 || year%400 == 0;
あなたの年が 2000 年であるとします。
leap = 2000%4 == 0 && 2000%100 !=0 || 2000%400 == 0
leap = true(1) && false(0) || true(1)
leap =false(0) || true(1)
leap = 1;
混乱を避けるために、常に括弧を使用してください。この場合、優先順位は左から右であるため、混乱することはありません。
これは、ステートメントが実行される方法です。
%, ==, !=, &&, ||