選擇結(jié)構(gòu)
概念:跟據(jù)if語(yǔ)句塊中的邏輯選擇需要執(zhí)行的代碼塊。
跟據(jù)程序的邏輯選擇運(yùn)行的代碼塊权谁。
請(qǐng)法有三種寫法
寫法一
if(邏輯表達(dá)式){
內(nèi)容
}
案例:
int main()
{
// 選擇結(jié)構(gòu)語(yǔ)句 if
int a = 1;
int b=8;
if(a<b){ //a<b條件結(jié)果為真就會(huì)運(yùn)行下面代碼塊
printf("hi 你執(zhí)行到我了\n");
}
printf("程序結(jié)束\n");
return 0;
}
寫法二
if(邏輯表達(dá)式){
if內(nèi)容
}else{
//否則內(nèi)容
}
案例:
if(a>b){ //條件成立走 if塊代碼 不成立走否則代碼塊
printf("hi 你執(zhí)行到我了\n");
}else{
printf("走了否則語(yǔ)句\n");
}
寫法三
if(邏輯值){
//if語(yǔ)句塊
}else if(邏輯值){
//else if 語(yǔ)句塊
}else if(){}.......多個(gè)else if....{
}else{ //可加可不加
//else代碼塊
}
案例
int a = 1;
int b = 8;
if(a>b){
printf("hi 你執(zhí)行到if塊邏輯\n");
}else if(4>9){
printf("hi 你執(zhí)行到else if塊4>9邏輯\n");
}else if(6>3){
printf("hi 你執(zhí)行到else if塊6>3邏輯\n");
}else if(a<b){
printf("hi 你執(zhí)行到else if塊a<b邏輯\n");
}else{
printf("hi 你執(zhí)行到else 塊邏輯\n");
}
總結(jié)
在同一個(gè)連起來(lái)的if語(yǔ)句塊中所有的if else if else 只要其中一個(gè)滿足了條件下面的語(yǔ)法塊就不會(huì)執(zhí)行了
題目練習(xí)
題目1: 從控制臺(tái)輸入兩個(gè)整數(shù)a 和 b進(jìn)行比較如果a 大于b 在控制臺(tái)打輸出 "帥哥" 剩檀,如果 a小于b 打印 "美女"。
int a,b;
printf("請(qǐng)輸入a和b的值用空格分開:");
scanf("%d %d",&a,&b); //從控制臺(tái)接收值
if(a>b){
printf("帥哥\n");
}else{
printf("美女\n");
}
語(yǔ)法注意
int a = 9,b = 18;
if(a>b) //沒(méi)有{} 大括號(hào)只會(huì)影響 下面語(yǔ)法的第一句旺芽。
printf("執(zhí)行了一");
printf("執(zhí)行了二");
printf("執(zhí)行了三");
作業(yè)1:
從控制臺(tái)輸入一個(gè)分?jǐn)?shù):如果大于等于90分則打印優(yōu)秀沪猴,大于等于80分小于90分打印良好,大于等于70分小于80分還好采章,大于等于60分小于70分打印及格运嗜,小于60分則打印不級(jí)格。
printf("請(qǐng)從控制臺(tái)輸入一個(gè)分?jǐn)?shù)然后回車:");
float score;
scanf("%f",&score);
if(score >=90){
printf("優(yōu)秀\n");
//80<=score <90 不是數(shù)學(xué)表達(dá)式
}else if(score < 90 && score >=80){
printf("良好\n");
}else if(score < 80 && score >=70){
printf("還好\n");
}else if(score < 70 && score >= 60){
printf("及格\n");
}else{
printf("不及格\n");
}
作業(yè)2:
從控制臺(tái)輸入一個(gè)三個(gè)數(shù)悯舟,然后選出最大的數(shù)打印到控制臺(tái).
答案1
printf("從控制臺(tái)輸入三個(gè)整數(shù)\n");
int d,b,c;
printf("請(qǐng)輸入第一個(gè)數(shù)后回車\n");
scanf("%d",&d);
printf("請(qǐng)輸入第二個(gè)數(shù)后回車\n");
scanf("%d",&b);
printf("請(qǐng)輸入第三個(gè)數(shù)后回車\n");
scanf("%d",&c);
int max = 0;
if(max < d){
max = d;
}
if(max < b){
max = b;
}
if(max < c ){
max = c;
}
printf("輸入的最大數(shù)為:%d",max);
答案2
printf("請(qǐng)從控制臺(tái)輸入三個(gè)整數(shù)担租,用下劃線隔開然后回車");
int a,b,c;
scanf("%d_%d_%d",&a,&b,&c);
int max = a;
if(max < b){
max = b;
}
if(max < c){
max = c;
}
printf("輸入的最大數(shù)是%d",max);
作業(yè)總結(jié)
案例
int a =10,b = 5,c = 5;
if(a - b){
printf("打印了我1\n"); //會(huì)打印
}
if(b - c){
printf("打印了我2\n"); //不會(huì)打印
}
if(c - a){
printf("打印了我3\n"); //會(huì)打印
}
總結(jié)
if里面的邏輯的值 非0即為真,0就為假