[英]hi there, a question about break statement in c programming
我編寫了這個循環來添加數字,如果輸入的數字小於零,則中斷退出循環,最后打印計算出的數字而不添加負數。 但問題是,當我輸入 15 和 15 和 -2 時,即使我在加法之前寫了 break 語句,output 是 28 而不是 30 我發現了如何解決這個問題,我想知道的是為什么,謝謝。
#include<stdio.h>
void main()
{
int j =1, num =0, rslt =0;
while(1) {
if (num<0) break;
printf("enter a number : ");
scanf("%d", &num);
rslt = rslt+num;
}
printf("the resluts are %d\n", rslt);
目前,在將上一次迭代的輸入添加到結果之后,您正在有效地測試它。 相反,請在用戶輸入數字后立即檢查,然后再執行任何計算。
#include <stdio.h>
int main(void)
{
int num = 0, rslt = 0;
while (1) {
printf("enter a number : ");
scanf("%d", &num);
if (num < 0)
break;
rslt += num;
}
printf("the results are %d\n", rslt);
}
您可能還想檢查scanf
返回您期望的成功轉換次數(在本例中為一次),以處理用戶輸入無效輸入的事件。
if (1 != scanf("%d", &num))
break;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.