大括號問題
#include <stdio.h>
int main()
{
? ? int m, n;
? ? for(m=2; m<=50; m++)
? ? {
for(n=2; n<m; n++)
? ? ? ? {
? ? ? ? ? ? if( ? ?m%n==0 ? ?) ? ? ? //什么條件下跳出當前循環(huán)
? ? ? ? ? ? ? break ? ? ? ? ? ? ? ?//這里應(yīng)該退出當前循環(huán)了
}
? ? ? ? if(m == n) ? //n循環(huán)結(jié)束后,如果m=n的話就輸出m
? ? ? ? ? ? printf("%d ?", m);
}
return 0; ? ?
}
這里面,在if()完后,在輸入break;的時候,為什么不用輸入 { }??
2016-08-07
如果條件為真,執(zhí)行break;僅此一條語句而已,不用加語句塊符號{}
2016-08-10
如題。
m=2時,判斷m是否小于等于50.成立繼續(xù)運行。
那么問題來了。假設(shè)m=51.不符合怎么辦。
答:有大括號時。因為m初始值不符合表達式二。大括號中一律不執(zhí)行。n的for循環(huán)也在大括號中,所以n的for循環(huán)也不執(zhí)行。
? ? ? 無大括號時。因為m初始值不符合表達式二。程序繼續(xù)運行,到達n的for循環(huán)n小于51,循環(huán)n的for循環(huán)。