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 等語言語法中都有 若有多條語句必須用 擴起來 的有效...