C語言break問題

時間 2022-03-31 11:00:22

1樓:匿名使用者

首先,你這裡 printf("%d is a prime number!\n");,應該是 printf("%d is a prime number!\n",m);。

另外,如果你的程式沒有漏括號的話,break之後是跳到if (i>m/2&&m!=1)這一句進行判斷的,若在之前的for語句裡,找不到m的因數,則if (i>m/2&&m!=1)的條件滿足,列印這是一個素數。

若找到了m的因數,則m不是一個素數,列印no。

此處,因為執行了break,這是找到因數才會執行的,所以m一定是個合數,會列印no

2樓:

break語句只是跳出當前最內層的迴圈。在你給出的例子中,就是跳出for 迴圈。

接下來,就應該執行for語句的下一句,在本例中,應該是if (i>m/2&&m!=1)

printf("%d is a prime number!\n");

else

printf("no!\n");

這一整句。

具體執行printf("%d is a prime number!\n"); 還是printf("no!\n");語句,需要根據 if 的判斷結果。

3樓:匿名使用者

break;只是跳出for迴圈體,接著執行if (i>m/2&&m!=1),若為真(不是break出來的,應該是不滿足for迴圈條件而結束迴圈的),d則為素數。

4樓:匿名使用者

是跳到if (i>m/2&&m!=1)

這一句的,你也可以斷點測試一下。

5樓:

跳到判斷語句if(i>m/2&&m!=1)這裡,但是由於break為真,所以m肯定不是素數,則if(i>m/2&&m!=1)語句為假,那麼最後輸出printf("no!

\n"); 若有疑問,可以問。。

6樓:睿爾科技嵌入式

for(i=2;i<=m/2;i++)

if(m%i==0)

break;

if (i>m/2&&m!=1)

printf("%d is a prime number!\n");

else

printf("no!\n");

-----------------以上程式設計中若if(m%i==0)  break;為真break跳出迴圈,跳到這一行,因為break跳出最內層迴圈。而你的for迴圈內部只有一個if語句,所以跳到下一個if語句的地方

7樓:匿名使用者

每次都要跳到 printf("no!\n");語句,

因為,m如果不是2的倍數,則for迴圈會執行完畢都不跳,一旦跳轉,必然是2的倍數。所以跳轉時 m/i=2,所以直接到printf("no!\n");

8樓:山腳腳下的娃兒

break跳出for迴圈,執行下一個if,

9樓:

if();為真的時候break;跳出大迴圈,也就是for();那個迴圈。跳到if (i>m/2&&m!=1)

c語言break問題,break編譯報錯

夏天的青雲 include int main void else if a 2 else printf if外的輸出 d n a return 0 你對比一下你的 吧.vc6.0編譯通過. break要搭配case使用,if語句不使用break,而是使用else或else if c語言break怎麼...

C語言break語句出錯的問題,關於C語言中break語句的問題

竹竹風子 break必須在迴圈內使用,從你貼出來的 來看,應該呼叫exit退出 上面的printf裡面標識了 好吧,俺這個回答是存在一定問題的。沒細看,慚愧 把while 1 對應的反大括號打到break 下面那個反大括號後面.while 1 while的反大括號打到這裡. 抹不去那縷光 你直接把b...

關於c語言,關於c語言中的break用法

include include表明這是給編譯程式預處理用,因為程式中要用函式printf,因此必須在尖括號中寫stdio.h,因為printf函式在這個檔案中被定義 int main 每個c程式必須且僅有一個main函式,前面的int報名函式結束執行後需要給定一個整型的返回值,後面的空括號表明mai...