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