1樓:匿名使用者
這是由於vc++和標準不一致造成的,我們來考察程式中那個for語句中的i的作用域,按照標準,在for的初始化部分宣告的變數作用域應該在for中,而vc++把這個變數的作用域擴充套件到for所在的層次,就是說在for之後也是可以使用的,那麼按照去掉大括號的程式,i的作用域是從宣告之處到switch的大括號結束。而default標籤跳過了i的宣告語句卻在i的作用域之中,這顯然是有問題的。
之所以加上大括號是正確的,是因為大括號改變了i的作用域
按照標準,這段**的錯誤是main函式的型別是int,其他沒錯。
2樓:
首先明確,for(int i=0;i<5;i++); 這個for語句中定義了變數i,
而在case分支語句中要定義變數必須使用複合語句,就是說你必須把這個變數的定義寫在一對「」中
你可以試試下面的**
#include
using namespace std;
void main()
}//for i*****************************i
cout< }//for m----------------------------------m break; default: break; } } 3樓:可愛的小知道 在switch語句中,「case 常量表示式」只相當於一個語句標號, 表示式的值和某標號相等則轉向該標號執行,但不能在執行完該標號的語句後自動跳出整個switch 語句,而是將繼續執行所有後面case語句的情況。 這是與if語句完全不同的,應特別注意。 如果你沒有那兩個括號,就是等價於: case 1: for (....) break; 當然不對,因為case 1:後沒分號,也沒有判斷語句,就等介於這個東東了。編譯器會瘋掉了。 c++中for迴圈和switch語句哪個更高效 4樓:黃鋆維 兩個語句屬於不同吧,for迴圈語句是正規的迴圈語句,switch語句可以說是進行判斷的 比如說for語句 for(int i=1;i<=n;i++)如果是switch語句 switch(a) case 2: default:break; }switch語句相比判斷語句if還是比較方便的 5樓:匿名使用者 for迴圈和switch的使用範圍是不一樣的,for迴圈是針對迴圈的比如你要計算1到100的和之類的 具有迴圈結構的,而switch只是開關語句,比如給一個數字讓判斷是星期幾,是1的話就是星期一可以使用switch語句,這兩個是沒有什麼好比較的 6樓:手機使用者 前指向內容不為0,也就是字串結尾 整個迴圈用於統計字串s中各種字元的個數,v1代表'a'的個數,也就是1,v2代表字元'b'的個數,就是2,v3代表字元'e'的個數,是2,v4代表其他字元個數,就是5 7樓:匿名使用者 這兩個的功能不太一樣吧,如果說哪個更高效的話,應該是switch,它能直接跳到相應 的case 語句中,for要一個一個的迴圈 8樓:匿名使用者 for 語句 和 switch語句沒有可比性,通常情況下不能互換,特殊情況下,**可能用兩種形式都能實現,但肯定是效率各有千秋。 可以比較的是 1、 for 迴圈 與 while 迴圈 2、 if 語句 和 switch 語句 比如:比較下 for 迴圈 與 while 迴圈: 通常情況下,只有你程式**寫的合理,兩者效率一樣,while 迴圈可以完全等價的用 for 迴圈代替。 在不考慮c++編譯器優化的情況下,特殊的語句,while 迴圈會比for 迴圈效率低,但表達形式更簡潔。 9樓:君哥哥愛漂移 用處不同,無比較意義 1.for(;;)用於迴圈語句,如:for(int i=1;i<=100;i++) sum=sum+i; 計算1到100的和,這兒sum初值是0 與for類似的是while,do....while語句,常用while語句 如:int i=1,sum=0; while(i<=100) //計算1到100和 2.switch叫多分支選擇語句,相當於if() {} else if() {} else if() {} else {}這兩個才具有 比較性,switch語句效率要高,但使用範圍小。 int main() return 0; }int main() 上述**也可以寫出: for迴圈裡有 switch case 語句,switch case 語句裡有break,. 執行 10樓:潛水灰飛煙滅 不會,break只是屬於switch的**塊,所以只會跳出switch,如果for依然滿足迴圈條件,會再次進入switch語句 11樓:愛zai地平線 正常情況跳出switch,但是如果break指向for迴圈,就可以結束for迴圈。 12樓:務曜燦阮莘 前者用於迴圈語句中,從迴圈體內直接退出當前迴圈(只退出一層迴圈)。後者用於switch語句中,從中途退出switch語句。不再執行下面的case。 這個好辦 你可以加一條語句就可以了 比如你定義 num 0 即初始代num 0 然後再在迴圈體中加一條num 就可以了 最後輸出num的值 num的值就是迴圈的次數 例如 include void main printf 迴圈次數為 d n num 付費內容限時免費檢視 回答這個好辦 你可以加一條語... 天雲一號 case語句後面能接for迴圈語句。只是將for迴圈整個當成一條語句執行。case是與switch一起使用的,格式如下 switch 表示式 case 常量表示式1 語句1 break case 常量表示式2 語句2 break case 常量表示式n 語句n break default ... 會完成。但是需要注意 1.system.windows.forms.timer 是單執行緒的,它只在ui執行緒中執行,定時精度約55ms,當前的事件沒處理完成時,下一次事件不會觸發 過久地處理會導致介面假死。2.system.threading.timer 是多執行緒的,觸發的事件在threadpo...c 中怎樣計算迴圈的次數,C 中while迴圈語句怎麼限制次數
在C語言中case語句後面能接for迴圈嗎
關於C中的timer控制元件,C 中,關於Timer控制元件的說法正確的是 選2項