c語言中的while語句為什麼後邊有的能加分號?有的不能?這
1樓:關漠莘金枝
迴圈裡while(){}
這個時候不用加括號如果是do
{}while();
這個時候要加括號你一旦while()加了括號說明這個迴圈就在括號裡結束了,不執行()外的操作!
2樓:費作首雪晴
while(n<=7)
這個沒有分號,所以後面的花括號裡面的是迴圈體。
do{}
while(a<1||a>50);這個因為while在迴圈後面,所以需要一個;表示語句結束。
有時候如果只是一個空while迴圈,後面只是一個空語句,也是加一個;
3樓:風若遠去何人留
while語句為c語言的迴圈語句,當while後括號內的條件成立(為真)時,會執行迴圈體,否則會退出迴圈。
當while寫作
while(expr)
時,所有{}內部的**組成迴圈體。
如果不包含大括號時,while的迴圈體為其接下來的一個語句。
c語言規定,一條語句是以分號(;)作為結束符的,所以如果寫作while(expr);
那麼while的迴圈體就是空的,也就是沒有迴圈體,這時需要在expr中做資料的修改操作,使得expr有假的可能。如果不存在這樣的修改,除非expr恆為假,否則該語句將成為死迴圈。
c語言中if語句後面不能加分號,否則當條件為真時執行空語句是什麼意思?
4樓:會飛的小兔子
意思是if語句在執行時,先
判斷括號內語句是否為真,如果為真,則執行後續程專序。當括號內為空時,語句判斷屬為非真,後續所含語句不予執行。
if語句的具體用法:
#include
int main()
printf("x=%d\n" , x);
return 0;
}擴充套件資料if…else if…else語句的具體語法格式如下:
if (判斷條件1)
else if (判斷條件2)
……else if (判斷條件n)
else
5樓:倒黴熊
比如int a,b;
a=2;b=3;
if(a這個
來if括號後面有分號,表示的自是bai 如果a,則不執行任du何語句,而是空語zhi句,分號前dao面沒有任何語句。
而if(a
6樓:匿名使用者
因為加bai分號表示一行語句
du,而你if後面加分號,程式認zhi為dao你if之後沒有語句了,專所以下一行的語句跟if沒關係屬了,直接導致不管if判斷是否成立都會執行下一行語句。
在c語言中編譯器認為一行**的條件是;號不是換行符,所以即使兩行沒加分號,編譯器也認為是一行語句。
7樓:
if( 條件表示式來)
語句段1;
這時候如果源你在 if( 條件表bai達du式zhi)後面加分號就成dao
了:if( 條件表示式);
語句1;
這樣,當條件表示式為真和不為真,都會執行語句1,且為真時,執行的是空語句,即分號前的語句,相當於:
if( 條件表示式) 空語句;
語句1;
8樓:射手
比如:if (i < 0)//這裡沒有bai分du號i=0;
上面那個
語句沒有分號,如zhi
果i<0(即所說的dao條件為真),那
版麼會執行權i=0.如果是這樣
if (i < 0);//這裡有分號
i=0;
那麼相當於
if (i < 0);
;i=0;
第一個分號之前什麼都沒有,所以就是執行空語句
9樓:匿名使用者
比如if(a>8);
寫的容易看一點就是
if(a>8)
當條件為真時要執行大括號裡面的語句
而此時分號前面沒有語句(即為空語句),所以當條件為真時執行空語句
在c語言中,for語句的後面加分號和不加分號有何不同?
10樓:種完太陽吃牛大
for迴圈後面加分號,表示這個迴圈是空語句,除了執行for()括號裡的,什麼都不幹。然後就執行下一行,也就是你的prinf,printf和for迴圈沒關係。
如果不加分號,那for迴圈後面的printf語句就是for迴圈的一部分,跟著for一起執行,但前提是for迴圈裡的條件要滿足。執行到第二個for時a已經等於3了,你要b=a,那b怎麼可能小於3 。所以後面的for迴圈不滿足條件,不執行,同時for裡面的**也不執行。
使用for語句應該注意:
1) for迴圈中的「表示式1(迴圈變數賦初值)」、「表示式2(迴圈條件)」和「表示式3(迴圈變數增量)」都是選擇項,即可以預設,但分號(;)不能預設。
2) 省略了「表示式1(迴圈變數賦初值)」,表示不對迴圈控制變數賦初值。
3) 省略了「表示式2(迴圈條件)」,則不做其它處理時便成為死迴圈。
例如:for( i=1; ; i++ ) sum=sum+i;
在c語言中,for語句的後面加分號和不加分號有何不同,該分號有什麼作用?
11樓:大野瘦子
加分號,表示這個迴圈是空語句,除了執行for()括號裡的,什麼都不幹,然後就執行下一行。
不加分號,那for迴圈後面的printf語句就是for迴圈的一部分,跟著for一起執行,但前提是for迴圈裡的條件要滿足。
分號代表語句結束。
例如:for(i=0;i<100;i++);
就等於:
for(i=0;i<100;i++)
12樓:翲燚
for語句有兩種用法,一種是跟單個語句,一種是跟**體。
在跟單個語句時,由於在c語言語句預設是以分號結尾的,程式會將for (;;)之後直到第一個分號的**視為迴圈體來執行,例如下面三種情況:
for (int i=0; i<10; i++) foo1();
for (int i=0; i<10; i++)
foo1();
for (int i=0; i<10; i++)
foo1();
上面三種寫法,都是呼叫foo1()函式10次。在下面一種情況裡,程式只會將foo1()函式迴圈呼叫10次,而不會將foo2()列入迴圈中,因為分號for語句在foo2()之前就已經結束了:
for (int i=0; i<10; i++) foo1(); foo2();
特別要提的是下面的兩種寫法,這兩種寫法的for語句的迴圈體都為空,程式都不會將foo2()列入迴圈,因此foo2()只會執行一次。這也是初學者常見的書寫錯誤。
for (int i=0; i<10; i++) ; foo2();
for (int i=0; i<10; i++) ;
foo2();
除了跟單個語句外,for語句還可以跟 圈起來的**體,如下面的例子:
for (int i=0; i<10; i++)
在這種情況下,for語句可以不以分號結尾,程式會將**體內的所有語句迴圈10次。
13樓:匿名使用者
for後面是個迴圈體 你可以理解為一個語句塊for{}
平時是由一些語句組成的 如果直接加分號的話 說明不執行操作(空操作) 只做單純迴圈 沒有什麼意義 一般用在延遲函式裡
但這樣的寫法是不推薦的 因為很佔cpu 你可以試一下用三重迴圈 然後迴圈體只寫一個分號 執行你會發現電腦記憶體一下子飆很高 最簡單的電腦病毒就是這樣做的 用很高次的迴圈 做無意義的操作 讓你的電腦執行很慢
14樓:逍遙的夢
for(i = 0;i<5;你所說的是for()後面那個分號嗎?如果是的話,他後面的分號是一定要的,但是如果分號直接寫在括號後面卻沒有其他語句的話,證明這個迴圈是沒有可執行語句的,如上面1.
第二個例子分號前面有個語句,就是每當括號裡的條件成立時,他就會執行一次。
15樓:匿名使用者
分號代表語句結束假設你有一個陣列int a[5];那麼你可以這樣給陣列賦值for(int i = 0;i<5;i++) a[i]=i;這個是沒加分號的,那麼a[0]=0,a[1]=1....a[4]=4;for(int i = 0;i<5;i++);這樣加了分號,就代表結束了,相當於迴圈只執行了i,然後就退出迴圈了 a[i]=i;//這樣相當於只有a[4]=4; c語言中,分號代表語句結束
16樓:匿名使用者
c語言中";"表示一句的結束,長的句子可以分成多行寫,到最後才寫一個";"
for語句中後面的分號也是如此,根據迴圈結構和你的需求不同,有時會寫分號,有時候換到下一行寫,還是有分號的。
17樓:匿名使用者
這個 其實每一項**後面必須要加「;」,但是如果for後沒有語句 就多加一個「;」,代表那項**是空值 for ( i = 0; a[ i ] <= m; i++ ) ;;;;;;; 也沒人說你錯的
18樓:戀雲歌晨
剛試驗了一下,一個是加分號一個是不加分號的
19樓:想做一隻喵喵喵
推薦回答中最後那個迴圈出來是i=5,而不是4
c語言**後面加分號代表什麼
20樓:匿名使用者
// 通常情況是代表語句結束,偶爾會有個例外(比如說for語句)。
int a; // 定義了int型變數a,語句結束,加上;
float b, // 定義了float型變數b,語句未結束c; // 繼續定義了float變數c,語句結果,加上;
for (int i=0; // ;前表示for語句的初始化語句
i<10; // ;前表示for語句的條件判斷++i)
21樓:匿名使用者
分號對c語言c程式是至關重要的。分號決定這段待執行程式語句的結束,一段執行語句後面必須加分號。像別的命令符 如:if ··後面可以不加分號,還有幾個忘了 學過很久都沒用到了!
22樓:寶爸日記
代表的是一個c語句的結束。
例如定義一個變數,int test=10;
意思是生命一個int型的變數test,並賦值為10,然後此語句結束。
在for(int i=0;i<10;i++)等迴圈語句中是一樣的
23樓:匿名使用者
帶分號才是c語句的正常結束,如果不帶分號,編譯會報錯。
24樓:小諾的晴空
c語言的標準說的是一個完整的c語句必須用分號結束,不然編譯會報錯。
而預處理命令#define不是c語言語句,這種就不需要加分號
25樓:匿名使用者
加了之後就代表一條語句,程式設計中,都需要「;」來代表一條語句。比如 return 0;就是一條語句 還如迴圈中for(i=0;i
26樓:匿名使用者
這個是c 的語法,也就那幾種,我看大家都差不多回答出來了,你用多了就知道**要加,**不要加了,沒有為什麼,因為他就是這樣用的!
27樓:乜帥紅
c是通過分號來區分一句話的而不是換行符。
編譯器會把一句話解析後生成指令。
28樓:匿名使用者
正常的一句c**加個分號才是一個語句 要不然只是個表示式 是不完整的
而有些for(;;){} while{} 等花括號的結尾不用加分號
29樓:nov_的十文
就是結束的意思
像我們平時說話的句號那樣,系統會認為你這是一句話比如:if(***) printf("***");
else printf("***");
if那一句話的意思是:如果***就輸出***這樣系統才能看懂
不一定要有。例如 while n 20 do inc n 因為while之後只有一個語句 inc n 所以不用begin end 如果有多個語句,例如 while n 20 do begin inc n dec n end 這樣就要有begin end 了。記住這個,如果while後只有一個語句,那...
問明 1 迴圈結構的表示式不同 while迴圈結構的表示式為 while 表示式 迴圈體 do while迴圈結構表示式為 do 迴圈體 while 條件表達 2 執行末尾迴圈體的順序不同 while迴圈的末尾迴圈體也是在中間迴圈體裡,並在中間迴圈體中執行,迴圈體是否繼續執行的條件也在迴圈體中。do...
a羅網天下 區別一 構成不一樣 1 c程式的執行部分是由語句組成的。程式的功能也是由執行語句實現的。2 指令可以使編譯器按不同的條件編譯不同的程式部分,因而產生不同的目標 檔案。這對於程式的移植和除錯是很有用的,尤其是針對於跨平臺程式移植的時候。區別二 實現功能不一樣 1 c程式語言可以實現多種程式...