C語言里if語句里是可以嵌套for循環(huán)的(if語句里可以放C語言里的任意的執(zhí)行語句)。
成都創(chuàng)新互聯(lián)10多年成都定制網(wǎng)站服務(wù);為您提供網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)頁設(shè)計及高端網(wǎng)站定制服務(wù),成都定制網(wǎng)站及推廣,對假山制作等多個行業(yè)擁有多年的網(wǎng)站運維經(jīng)驗的網(wǎng)站建設(shè)公司。
舉例說:
char yn;
int i;
printf("需要打印1到10之間的所有奇數(shù)嗎(Y/N)?\n");
scanf("%c",yn);
if(yn=='Y'||yn=='y')
{
for(i=1;i10;i+=2)
printf("%d ",i);
printf("\n");
}
else
printf("那就不打印了\n");
三、if--else
if--else結(jié)構(gòu)。
if(表達式1)
語句1;
else
if(表達式2)
語句2;
else
if(表達式3)
語句3;
.
.
.
else
語句n;
這種結(jié)構(gòu)是從上到下逐個對條件進行判斷,一旦發(fā)現(xiàn)條件滿點足就執(zhí)行與它有關(guān)的語句,
并跳過其它剩余階梯;若沒有一個條件滿足,則執(zhí)行最后一個else
語句n。最后這個else常起著缺省條件的作用。同樣,如果每一個條件中有多于一條語句要執(zhí)行時,必須使用{和}把這些語句包括在其中。
條件語句可以嵌套,這種情況經(jīng)常碰到,但條件嵌套語句容易出錯,其原因主要是不知道哪個if對應(yīng)哪個else。
例如:
if(x20||x-10)
if(y=100yx)
printf(good);
else
printf(bad);
對于上述情況,
turbo
c2.0規(guī)定:
else語句與最近的一個if語句匹配,
上例中的else與if(y=100yx)相匹配。為了使else與if(x20||x-10)相匹配,
必須用花括號。如下所示:
if(x20||x-10)
{
if(y=100yx)
printf(good);
}
else
printf(bad);
下面舉幾個例子:
1.輸入一個數(shù),如果大于0,輸出plus;如果是負數(shù),輸出negative;如果正好是0,則輸出zero。
main()
{
float
num;
scanf(%f,f);
if(num0)
printf(plus\n);
else
if(num0)
printf(negative\n);
else
printf(zero\n);
}
先定義兩個變量,然后輸入一個數(shù),然后判斷這個數(shù)的范圍,輸出對應(yīng)的字符串。
2.輸入一個數(shù)x,輸出y。其中y是x的絕對值。
main()
{
float
x,y;
scanf(%f,x);
if(x=0)
y=x;
else
y=-x;
printf(%f\n,y);
}
程序比較簡單,這兒就不分析了。
其實trubo
c
2.0把一些常用的功能都寫好了,我們只需要使用就可。例如求絕對值的功能在c的庫里面就有??聪旅娴模?/p>
#include
math.h
main()
{
float
x,y;
scanf(%f,x);
y=fabs(x);
/*求x的絕對值,然后賦值給y*/
printf(%f\n,y);
}
這個程序和上面的程序完成的功能是一模一樣的,都是求絕對值??梢钥闯觯孟旅孢@個方法比上面就要好一些。由于fabs()是一個函數(shù),系統(tǒng)自帶的,所以在使用它的時候,我們必須把它所在的庫文件math.h包含都程序中,即程序最前面一行。類似的還有求開方sqrt(),求指數(shù)冪exp()等等,這些與數(shù)學(xué)方面有關(guān)的函數(shù)都在math.h里面。具體哪些有哪些沒有,在什么庫里面,可以查看一些手冊。
3.輸入x,輸出y,x和y滿足關(guān)系:
x-5
y=x;
-5=x1
y=2*x+5;
1=x4
y=x+6;
x=4
y=3*x-2;
程序如下:
main()
{
float
x,y;
scanf(%f,x);
if(x-5)
y=x;
else
if(-5=xx1)
y=2*x+5;
else
if(1=xx4)
y=x+6;
else
y=3*x-2;
printf(%f\n,y);
}
這里要說明兩點:
(1).-5=xx1不能寫成-5=x1;1=xx4也不能寫成1=x4;在c語言中,不能認識連續(xù)不等式。
(2).y=2*x+5不能寫成y=2x+5;y=3*x-2也不能寫成y=3x-2;這與我們平時所寫的方法不一樣。
4.輸入三個數(shù)x,y,z,然后按從大到小輸出。
main()
{
float
x,y,z;
scanf(%f%f%f,x,y,z);
if(x=yx=z)
{
printf(%f\t,x);
if(y=z)
printf(%f\t%f\n,y,z);
else
printf(%f\t%f\n,z,y);
}
else
if(y=xy=z)
{
printf(%f\t,y);
if(x=z)
printf(%f\t%f\n,x,z);
else
printf(%f\t%f\n,z,x);
}
else
{
printf(%f\t,z);
if(x=y)
printf(%f\t%f\n,x,y);
else
printf(%f\t%f\n,y,x);
}
}
說明:這是一個典型的if語句嵌套結(jié)構(gòu),如果不使用括號,那么if和else的對應(yīng)關(guān)系就亂了。
if(m%i==0) return 0;如果有m%i==0成立,那么返回0。返回0表示直接退出當(dāng)前函數(shù),并返回0給調(diào)用函數(shù)。
1 執(zhí)行流程
對于基本語句:if(條件) 語句1 else 語句2
執(zhí)行流程為
如果條件成立 則執(zhí)行語句1,否則執(zhí)行語句2。
2 當(dāng)語句1或語句2又為一個條件語句時就構(gòu)成了條件嵌套。
嵌套時最基本的組合原則是,else與其上同一個層次中、最近一個、未配對的if組合。
如:if ()
if () 語句1
if ()語句2
else 語句3
則 else 與第三個if配對
再如 if ()
{ if () 語句1
if ()語句2 }
else 語句3
則 else 與第一個if配對,(在同一層次)
3 {} 是構(gòu)成復(fù)合語句,當(dāng)語句1或2為多個語句時,需要由{}括起來,構(gòu)成一個符合語句。
或者通過{} 改變配對次序(如上例)
可以。但是需要注意。
如果ccd()的代碼在main()前面,則可以直接使用;但是如果在后面,則需要在int main()的前面寫下一行代碼:
void ccd();
分號不能省略,作為聲明。
先判斷第一層,如果符合,再判斷內(nèi)嵌第二層,以此類推。比如:
if (a0)
if(a3) printf("hello");
else if((a0)(a3)) printf("OK");
即首先判斷a是否大于0,只有這個條件成立了,然后再判斷下面的if。