C言語のif文の理解度を確認するクイズ。
int a = 10; if (a == 10) { printf("Aです\n"); a = 20; } printf("a = %d\n", a);
a==10 は真 → if内を実行 → "Aです" 表示 → aを20に上書き → 最後に a=%d でaの現在値(20)を表示。
int a = 3; if (a = 10) { // = は代入! (== の誤り) printf("入った\n"); } printf("a = %d\n", a);
a = 10 は代入式で、その値は10(非ゼロ=真)。よってif内が実行されます。さらに、a自体が10に書き換わっているため、最後の出力は a = 10。int x = 5; if (x > 0 && x < 10 || x == 100) { printf("OK\n"); }
&& は || より優先されるので、実質 (x>0 && x<10) || x==100。