為什么這個代碼只輸出1,而不是5?求大佬解答。
#include<stdio.h>
int main()
{
?int i;
?for(i=1;i<=10;i++)
?? {
?if(i == 5);
?? ?printf("練球%d次\n",i);?
?? ?{
?? ??printf("哎呀!肚子疼!!\n");
??printf("訓(xùn)練不了啦?。n");
??break ;
??? }
?? }
?? printf("今天的訓(xùn)練到此結(jié)束");
?? return 0 ;
}
2018-12-11
錯在if后面加了一個分號
如果 ; 前面前面什么都不寫的話代表這是一個空語句,而且if(表達(dá)式)只對離它最近的表達(dá)式有效,你寫的if(i==5)后面恰好是一個空語句 ; ,所以后面{}里面的表達(dá)式都無法通過if(i==5)這個條件,也就是說跟if(i==5)這個判斷條件無關(guān),從而后面的輸出語句將for循環(huán)中定義的i=1輸出。
望采納!
2018-12-10
把分號去掉,把左大括號提到if后面就可以了
2018-12-10
if后面有分號,已經(jīng)結(jié)束了本次判斷
2018-12-10
#include<stdio.h>
int main()
{
?int i;
?for(i=1;i<=10;i++)
?? {
?if(i == 5);
?? ?printf("練球%d次\n",i);? ? ? ? ? ? ?//這里定義不對,應(yīng)該是當(dāng)i!=5時,輸出練球次數(shù)
?? ?{ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //這里沒有條件
?? ??printf("哎呀!肚子疼??!\n");
??printf("訓(xùn)練不了啦??!\n");
??break ; ? ? ? ? ? ? ? ? ? ? ? ? ? ?//break 直接跳出循環(huán)
??? }
?? }
?? printf("今天的訓(xùn)練到此結(jié)束");
?? return 0 ;
}