亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

為什么這個代碼只輸出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 ;
}

正在回答

4 回答

錯在if后面加了一個分號

如果 ; 前面前面什么都不寫的話代表這是一個空語句,而且if(表達式)只對離它最近的表達式有效,你寫的if(i==5)后面恰好是一個空語句 ; ,所以后面{}里面的表達式都無法通過if(i==5)這個條件,也就是說跟if(i==5)這個判斷條件無關,從而后面的輸出語句將for循環中定義的i=1輸出。

望采納!

0 回復 有任何疑惑可以回復我~
#1

hzCN

if-else語句格式: if() { 表達式1; ... 表達式n; } else { 表達式1; ... 表達式n; }
2018-12-11 回復 有任何疑惑可以回復我~
#2

qq_慕娘4133401 提問者

謝謝!
2018-12-12 回復 有任何疑惑可以回復我~
#3

qq_慕娘4133401 提問者

您能給我解釋一下空語句嗎?
2018-12-12 回復 有任何疑惑可以回復我~

https://img1.sycdn.imooc.com//5c0e69d70001793207460287.jpg

把分號去掉,把左大括號提到if后面就可以了

0 回復 有任何疑惑可以回復我~
#1

qq_慕娘4133401 提問者

謝謝?。?/div>
2018-12-12 回復 有任何疑惑可以回復我~

https://img1.sycdn.imooc.com//5c0e69680001c2d503100285.jpg

if后面有分號,已經結束了本次判斷

0 回復 有任何疑惑可以回復我~

#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 ;
}



0 回復 有任何疑惑可以回復我~
#1

咸魚想打ACM

噢!打錯了,應該是輸出練球次數應該在if之前
2018-12-10 回復 有任何疑惑可以回復我~
#2

qq_慕娘4133401 提問者

謝謝!
2018-12-12 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

為什么這個代碼只輸出1,而不是5?求大佬解答。

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號