分支和循环语句
选择语句
if语句
1.单if语句
if(条件表达式){
执行语句;
}
#include<stdio.h>
int main(){
int age=0;
scanf("%d",&age);
if(age<=18){
printf("未成年");
}
return 0;
}
2.if-else双分支语句
if(条件表达式){
执行语句1;
}else{
执行语句2;
}
条件表达式为真,则执行表达式1,否则执行表达式2。
#include<stdio.h>
int main(){
int age=0;
scanf("%d",&age);
if(age<=18){
printf("未成年");
}else{
printf("成年");
}
return 0;
}
3.if-else if-else多分支语句
if(条件表达式1){
执行语句1;
}else if(条件表达式2){
执行语句2;
}else{
执行语句3;
}
条件表达式1如果为真,则执行语句1,条件表达式2如果为真则执行语句2,以此类推,如果所有条件都不满足,则执行else后的语句。
#include<stdio.h>
int main(){
int age=0;
scanf("%d",&age);
if(age<=18){
printf("未成年");
}else if(age>18&&age<=28){
printf("青年");
}else if(age>28&&age<=50){
printf("壮年");
}else{
printf("老年");
}
return 0;
}
else就近if匹配,所以使用{}使逻辑更为清楚,防止else悬空问题。
例如:
#include<stdio.h>
int main(){
int a=20;
int b=30;
if(a==30)
if(b==30)
printf("%d",a);
else
printf("%d",b);
return 0;
}
结果是没有值,因为else就近if匹配,所以a不等于30,条件为假,语句不执行。
switch语句
switch(整型表达式){
case 整型常量表达式1:
执行语句1;
case 整型常量表达式2:
执行语句2;
default:
执行语句;
}
注意: switch后面是整型表达式,case后面表达式是整型常量表达式。
default语句是当switch表达式的值并不匹配所有case标签的值时,这个default子句后面的语句就会执行。所以,每个switch语句中只能出现一条default子句。并且它可以在任何位置。
int main() {
int day = 1;
switch (day)
{
case 1:
printf("今天是星期一\n");
break;
case 2:
printf("今天是星期二\n");
break;
case 3:
printf("今天是星期三\n");
break;
case 4:
printf("今天是星期四\n");
break;
case 5:
printf("今天是星期五\n");
break;
default:
break;
}
return 0;
}
break是将语句划分为不同的分支部分。
循环语句
while循环
while(循环条件){
执行语句;
}
//打印1-10数字
#include<stdio.h>
int main(){
int i=1; //设置初始条件
while(i<=10){ //条件判定
printf("%d ",i);
i++; //条件更新
}
return 0;
}
break在while循环中的作用:
永久终止循环。只要碰到break,停止后期的所有循环,直接终止循环。
continue在while循环中的作用:
用于终止本次循环,也就是本次循环continue后的代码不再执行,直接跳到while循环的判断部分,进行下一次判断循环的入口判断。
for循环
for(表达式1;表达式2;表达式3;){
执行语句:
}
表达式1:初始化部分,用于初始化变量。
表达式2:条件判断部分,用于循环条件终止判断。
表达式3:条件更新部分,用于循环条件的调整。
//打印1-10数字
#include<stdio.h>
int main(){
int i=0;
for(i=1;i<=10;i++){
printf("%d ",i);
}
return 0;
}
do while循环
//先执行再判定
do{
执行语句;
}while(条件判定);