一、分支和循环(1)
c语言是一门结构化的程序设计语言
1.顺序结构
2.选择结构
3.循环结构
循环结构在c语言中的体现就是分支语句
什么是语句? c语言中由一个分号隔开的就是一条语句
int main(){
int a=0; //这就是一条语句
;//这是一条空语句
return 0;
}
分支结构(选择)
1.if语句
if(){}else{}
if(){}else if(){}else{}
if(){}if(){}
int main(){
int age=10;
if(age<18){
printf("未成年\n"); //输出未成年
}
return 0;
}
int main(){
int age=10;
if(age<18){
printf("未成年\n"); //输出未成年
}else{
printf("成年\n");
}
return 0;
}
int main(){
int age=10;
if(age<18){
printf("未成年\n"); //输出未成年
}else if(age>=18&&age<28){
printf("青年\n");
}else{
printf("壮年\n");
}
return 0;
}
c语言中怎么表示真假呢?
0表示假,非0则表示真(只有不是0就是真)
{ }一对花括号就是一个代码块
注意:如果没有花括号的话 else和最近的一个if匹配
如:
int main(){
int a==1;
int b==2;
if(a==0)
if(b==2)
printf("hhh");
else
printf("mmm");
return 0;
//结构为空 什么都不输出 因为else和最近的if是一对
//所以第一个if是没有else配对的 第一个if条件不成立 就直接到return 0这里了
}
int main(){
int a==1;
int b==2;
if(a==0)
if(b==2)
printf("hhh");
else
printf("mmm");
return 0;
//结构为空 什么都不输出 因为else和最近的if是一对
//所以第一个if是没有else配对的 第一个if条件不成立 就直接到return 0这里了
//这和前一个效果是一样的 和缩进无关 如果要区分的话 应该加括号的
}
if书写形式的对比
//代码1
if(){
return x;
}
return y;
//如果if条件成立则返回x,如果if条件不成立则返回y
//return会阻断后边的代码
//代码2
if(){
return x;
}
else{
return y;
}
//这是一个比较好的代码格式
//代码3
int num=4;
if(num=5){//这里要注意 一个等号是赋值 两个等号是相等判断
printf("hhh");
}
//系统编译通过 编译结果是 hhh
//在写代码时可以写成5==num 这时如果丢掉一个等号 系统就会报错就会任意发现错误
//练习1
//判断一个数是不是奇数
int main(){
int n=0;
scanf("%d",&n);
if(n%2==1){
printf("%d是奇数",n);
}else{
printf("%d不是奇数",n);
}
return 0;
}
//练习2 输出1-100之间的奇数
int main(){
for(int i=1;i<=100;i++){
if(i%2==1){
printf("%d ",i);
}
}
return 0;
}
2.switch语句
switch语句也是一种分支语句,常用于多分支的情况
switch(整型表达式){
case 整型常量表达式:
语句;
case 整型常量表达式:
语句;
}
int main(){
int day=0;
scanf("%d",&day);
switch(day){ //switch这必须是整型表达式 day必须是整数
case 1: //case后也必须是整数 还得是常量 不能是变量
printf("星期一\n");
break;
case 2:
printf("星期二\n");
break;
case 3:
printf("星期三\n");
break;
case 4:
printf("星期四\n");
break;
case 5:
printf("星期五\n");
case 6:
printf("星期六\n");
break;
case 7:
printf("星期日\n");
break; //注意要加break 跳出语句
default:
printf("输入错误");
break;
// 其他情况时就会输出default后的语句
}
return 0;
}
break的效果是将语句分类 跳出语句
case中也可以出现if语句
例如: case 1:
if(2==n){
printf("hhh");
}
break;
3.while循环
while(表达式){
执行语句;
}
只有表达式为真就开始循环 直到表达式为假时退出循环
break的作用是退出全部循环 continue的作用是退出本次循环 执行下次循环