C語言條件語句問題,c語言for語句中的條件問題

2022-10-08 08:46:42 字數 6158 閱讀 2613

1樓:許詩文

一個表示式的返回值都可以用來判斷真假,除非沒有任何返回值的void型和返回無法判斷真假的結構。當表示式的值不等於0時,它就是「真」,否則就是假。一樣個表示式可以包含其他表示式和運算子,並且基於整個表示式的運算結果可以得到一個真/假的條件值。

因此,當一個表示式在程式中被用於檢驗其真/假的值時,就稱為一個條件。

一、if語句

if(表示式) 語句1;

如果表示式的值為非0,則執行語句1,否則跳過語句繼續執行下面的語句。

如果語句1有多於一條語句要執行時, 必須使用 把這些語句包括在其中, 此時條件語句形式為: if(表示式)

例如:if(x>=0) y=x; if(a||b&&c)

二、if--else語句

除了可以指定在條件為真時執行某些語句外,還可以在條件為假時執行另外一段**。在c語句中利用else語句來達到這個木的。 if(表示式) 語句1; else 語句2;

同樣,當語句1或語句2是多於一個語句時,需要用{}把語句括起來。 例如:

if(x>=0) y=x; else y=-x;

三、if--else if--else結構。 if(表示式1) 語句1;

else if(表示式2) 語句2;

else

語句n;

這種結構是從上到下逐個對條件進行判斷

,一旦發現條件滿點足就執行與它有關的語句, 並

跳過其它剩餘階梯

;若沒有一個條件滿足

,則執行最後一個

else 語句n

。最後這個

else

常起著預設條件的作用。同樣

,如果每一個條件中有多於一條語句要執行時

,必須使用

把這些語句包括在其中。

條件語句可以巢狀

,這種情況經常碰到

,但條件巢狀語句容易出錯

,其原因主要是不知道哪個

if對應哪個

else。例如

: if(x>20||x<-10)

if(y<=100&&y>x)

printf(good);

else

printf(bad);

對於上述情況

, turbo c2.0

規定: else

語句與最近的一個

if語句匹配

, 上例中的

else

與if(y<=100&&y>x)

相匹配。為了使

else

與if(x>20||x<-10)

相匹配,

必須用花括號。如下所

示:if(x>20||x<-10)

else

printf(bad);

else if(表示式3) 語句3; . . .

2樓:匿名使用者

#include

#include

void main()

3樓:匿名使用者

基本思路是比較字串

#include

#include

int main(void)

4樓:海靈

偽**如下:

scanf("%s",&answer);

if(answer=="yes")

else if(answer=="no")

c語言for語句中的條件問題

5樓:匿名使用者

1、for是c語言中的一個關鍵字,主要用來控制迴圈語句的執行。

2、舉例說明for語句的使用方法:

int i;

for(i=0; i<3; i++)

// i=0是初始化部分;i<3是迴圈判斷條件部分(當滿足此條件時才進入執行for迴圈中的語句);i++是執行完迴圈體語句後的操作

// 上面的for語句就是控制輸出3次helloworld

6樓:匿名使用者

仔細看(1)(2)(3)(4)(5)這樣,你應該能瞭解了吧。c語言中的for迴圈語句使用最為靈活,不僅可以用於迴圈次數已經確定的情況,而且可以用於迴圈次數不確定而只給出迴圈結束條件的情況,它完全可以代替while語句.

for(表示式 1;表示式 2;表示式 3)語句

它的執行過程如下:

(1)先求表示式 1.

(2)求表示式2,若其值為真(值為非0),則執行for語句中指定的內嵌語句,然後執行下面第三步 做若為假(值為0),則結束迴圈,轉到第5步.

(3)求解表示式3

(4)轉回上面第(2)步驟繼續執行;

(5)結束迴圈,執行for語句下面的一個語句;

for(迴圈變數賦初值;迴圈條件;迴圈變數增值)語句

如for(i=1;i<=100;i++)sum=sum+i;

它的執行相當於

i=1;

while(i<=100)

顯然,用for語句更簡單、方便。

說明:(1)for語句的一般形式中的"表示式1"可以省略,此時應在for語句之前給迴圈變數賦初值.注意省略表示式1時,其後的分號不能省略.如for(;i<=100;i++);

(2)如果表示式2省略 即不判斷迴圈條件,迴圈無終止地迴圈下去,也就是認為表示式2始終為真.

例如:for(i=1;;i++);

相當於i=1;

while(1)

(3)表示式3也可以省略,但此時程式設計者應另外設法保證迴圈能正常結束.如:

for(i=1;i<=100;)

這個例子的迴圈增量沒有放在表示式三的位置 而是作為迴圈體的一部分 其效果是一樣的.

(4)可以省略表示式1和表示式3,只有表示式2 即只給迴圈條件.

如for(;i<=100;)

這個相當於

whlie(i<=100)

(5)三個表示式都可以省略,如:

for(;;)語句

相當於while(1)語句

即不設初值 不判斷條件(認為表示式2為真值)迴圈變數不增值,無終止的執行迴圈體.

(6)表示式1也可以是設定迴圈變數初值的賦值表示式,也可以是與迴圈變數無關的其他表示式.如:

for(sum=0;i<=100;i++)

for(sum=0,i=0;i<=100;i++)

等等寫法.

7樓:匿名使用者

y<5起作用用下面這個程式可以測試出來int main()

return 0;

} 原理: int i = 1, 2;最後i的值是2;x<5 有一個值真或假 y<5 也有一個值真或假表示式 x<5, y<5的最後的值 是y<5的值

8樓:匿名使用者

xy的初始值都是0 xy不能超過5 迴圈1次x自加1 y自加1

xy等於5了就跳出迴圈

9樓:匿名使用者

x、y都成立時候,條件才成立,才能執行下面的迴圈語句

c語言問題if語句巢狀

10樓:love添飯

要點是1 if與else的成對關係依照就近原則2 if與else的成對關係遇到花括號時,就近原則找相成對花括號3 區域性**塊一定要加括號

if(a <= 1)

if(b > 1)

printf("yes\n");//a<=1且b>1時執行else

printf("no\n");//a<=1且b<=1時執行//用括號括起來更容易理解

if(a <= 1)else

}//第二中情況

if(a <= 1)

else

printf("no\n");//a>1時執行

11樓:聽不清啊

配對情況如下:

圖中黑線表示配對情況,紅線表示條件滿足時執行的,或else時執行的語句。

配對的規律是:從上往下找第一個else,它與前面未配過對的if配成一對;如此這般,直到結束。

12樓:水忠隱浩穰

沒括號又沒縮排得確實看著累。

首行y=0是初始化y

x=80時,不屬於if

x<0,也不屬於else

ifx<10

,只能屬於else

y=200

所以結果是200

選ex=5時,屬於else

ifx<10

then

y=10

,但緊接著機結果被if

x<100

then

y=100覆蓋掉,

所以最後時100

選dp.s.注意以下語句屬於同一個區域性變數範圍內else

ifx<10

then

y=10

ifx<100

then

y=100

endif

遇到c語言問題,輸入一個數,for迴圈內if語句,條件不符合重新輸入。

13樓:匿名使用者

break本來就是跳出迴圈用的,換成break自然沒問題。當你輸入小於100時,你讓i= 0,但是你忘記了還要執行i++,所以,i依然會變成1。

14樓:匿名使用者

if裡面加continue結束本次迴圈,開始下一次

15樓:鍾晴董琪

你可以用while來實現迴圈輸入,沒必要用goto,這個語句已經不建議使用了,樓上的正解

c語言,某if條件句,條件滿足,卻不執行,是什麼原因

16樓:匿名使用者

是不是由於你的a,b,c,d由於都是double型別的,受儲存精度的限制,在你認為可能是滿足if語句的條件下其實沒有滿足條件,因而沒有執行

17樓:黃邦勇帥哥哥

問題都不全,怎麼回答,都不知道你是怎樣對a,b,c,d賦值的,而且for(k=5,m=0;k>=0;k--)這個迴圈里根本就沒有改變a,b,c,d的值的語句,因此,只要第一次判斷

if((a>=b)&&(c<=d))

不成立,那麼以後肯定每次都不成立,一直到迴圈結束,如果你的條件不成立,則肯定一次都不執行,如果你的條件成立,則會執行6次,也就是說最後m的值為6。因此,一次都不執行if語句很正常,不七怪。

18樓:_小_蘇

「偶爾」卻不執行,只有一個原因,就是沒有滿足條件.

請樓主仔細思考.

19樓:終於註冊成功來

「&&」運算子有邏輯短路的情況,是不是碰上這種情況才沒執行??

c語言中條件編譯和if語句之間的差別,各適用於什麼情況

20樓:匿名使用者

條件編譯是c語言中預處理部分的內容,它是編譯器編譯**時最先處理的部分,

條件編譯裡面有判斷語句,比如 #if 、#else 、#elif 及 #endif

它的意思是如果巨集條件符合,編譯器就編譯這段**,否則,編譯器就忽略這段**而不編譯,如

#define a 0 //把a定義為0

#if (a > 1)

printf("a > 1"); //編譯器沒有編譯該語句,該語句不生成彙編**

#elif (a == 1)

printf("a == 1"); //編譯器沒有編譯該語句,該語句不生成彙編**

#else

printf("a < 1"); //編譯器編譯了這段**,且生成了彙編**,執行該語句

#endif

而 if 語句則不然,if 是 c 語言中的關鍵字,它根據表示式的計算結果來覺定執行那個語句,它裡面的每個分支都編譯了的, 如

#define a 0

if (a > 1)

printf("a > 1"); //編譯器編譯該語句,但因為a == 0 未執行

else if(a == 1)

printf("a == 1"); //編譯器編譯該語句,但因為a == 0 未執行

else

printf("a < 1"); //編譯器編譯該語句,因為a == 0 故執行

所以 簡單地講,條件編譯是根據 巨集條件 選擇性地編譯語句,它是編譯器在編譯**時完成的;

條件語句是根據條件表示式選擇性地執行語句,它是在程式執行時進行的。

c語言問題,C語言問題?

include include int main max min i 0 sum i 0 i 1 i 2 i 3 i 4 i 5 i 6 for j 0 j 6 j printf 去掉一個最高分 0.6lf max printf 去掉一個最低分 0.6lf n min printf 該選手最後的得分...

c語言問題,C語言問題?

char的範圍是 128 127的 你362就溢位了嘛 是這樣的 0362 0是表示8進位制 於是362在10進位制下是242 242溢位了 128 127 於是結果變成242 128 128 14 要明白這個,首先要明白記憶體中 c 變數是什麼樣子的。整數在記憶體中是以補碼的形式存取的。c 036...

C語言的for迴圈語句,C語言中迴圈語句有哪些?

呵呵,是可以執行的。for rooster 0 rooster 100 rooster for hen 0 hen 100 hen for chick 0 chick 因為只有到這裡才有分號。用 是在多個分號出現的語句中。for while if 等語言語法中都有 若有多條語句必須用 擴起來 的有效...