If(...&&...||...)

if(age < 12) ...

if(age > 12 && age < 60) ...

if(age > 60) ...

if(age < 12 || age > 60) ...






|
|
12 60

常見錯誤: Ans

1. if(12 < age < 60) ...

數學與電腦寫法不同
改正: if(age > 12 && age < 60) ...
2. if(age < 12 || > 60) ...
欠變數名稱 age
改正: if(age < 12 || age > 60) ...
3. if(age>60); printf("...");
if中間不要加(;)分號
改正: if(age>60) printf("...");
4. if(age<12 && age>60) ...
沒可能
改正: if(age < 12 || age > 60) ...
5. if(age = 12) ...
賦值(age=12);比較(age==12)
改正: if(age==12) ...
6. if(age > 12 || age < 60) ...
等同: if(1) ...
改正: if(age>12 && age<60) ...
7. if(ans=='y' && ans=='n')
  puts("ok");
沒可能
改正: if(ans=='y' || ans=='n') puts("ok");
8. if(ans!='y' || ans!='n')
  puts("error");
任何輸入都正確
改正: if(ans!='y' && ans!='n') puts("error");
9. scanf("%c",&ch);
  if(ch=='a'||'b'||'c'||'d')...
改正: if(ch=='a' || ch=='b' || ch=='c' || ch=='d') ...
改正: if(strchr("abcd",ch) != NULL) ...