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

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

不知道哪里有問題 輸不出1

#include <stdio.h>
int main()
{
??? int sum = 0;
??? int i;
??? KKKL:for(i=1; i<=10; i++)
??? {
??????? printf("%d\n", i);
??????? if(i==3)
??????? break;//是不是少了一個判斷呢?
??????? goto? KKKL;???????????????????? //在這里使用goto語句
??? }
??? printf("結束for循環了....");? //請選擇合適位置添加標識符
??? return 0;???
}

正在回答

3 回答

你這個邏輯關系理錯了

你這個if這么寫的話

if(i==3)
??????? break;//是不是少了一個判斷呢?
??????? goto? KKKL;

1:結構上少了大括號,計算機認為的是如果i==3執行break;else否則執行goto KKKL;所以當i=1時,if語句判斷為i<3,執行了goto KKKL; 而你goto到for語句又把i的值初始化為1了,所以就死循環了。

2:goto是強制執行到有標識符的位置的,所以你把goto放在for語句前面是不對的,應該吧goto放在printf(“”結束for循環了“”)的前面,當i==3,輸出結束for循環。

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

qq_絕不將就_0 提問者

非常感謝!
2017-01-19 回復 有任何疑惑可以回復我~

#include <stdio.h>
int main()
{
??? int sum = 0;
??? int i;
? ? for(i=1; i<=10; i++)
??? {
??????? printf("%d\n", i);
??????? if(i==3)//是不是少了一個判斷呢?
??????? goto? KKKL;???????????????????? //在這里使用goto語句
??? }
??? ?KKKL:printf("結束for循環了....");? //請選擇合適位置添加標識符
??? return 0;????
}

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

這樣寫的話,會陷入死循環吧,大概意思是這樣的:

for(i=1; i<=10; i++)
??? {
??????? printf("%d\n", i);
??????? if(i==3)
??????? ????break;//是不是少了一個判斷呢?
??????? else

????????????for(i=1; i<=10; i++)
??? ????????{
??????? ????????printf("%d\n", i);
??????????????? if(i==3)
????????????????break;//是不是少了一個判斷呢?
??????? ????????else

????????????????for...
??? }


??? }

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

舉報

0/150
提交
取消
C語言入門
  • 參與學習       926905    人
  • 解答問題       21532    個

C語言入門視頻教程,帶你進入編程世界的必修課-C語言

進入課程

不知道哪里有問題 輸不出1

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

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

幫助反饋 APP下載

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

公眾號

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