分支语句
- if
- switch
循环语句
- whlie
- for
- do while
goto 语句
if语句
语法结构:
if(表达式)
语句;
if(表达式1)
语句1;
else
语句2;
if(表达式1)
语句1;
else if(表达式2);
语句2;
else
语句3;
int main()
{
int age;
age = 25;
if (age < 13)
{
printf("幼年\n");
}
else if (age >= 13 && age < 18)
{
printf("青年\n");
}
else
{
printf("成年\n");
}
return 0;
}
一对{}及为一个代码块
int main()
{
int a = 0;
int b = 2;
if (a == 1)
if (b == 2)
printf("hehe\n");
else
printf("haha\n");
return 0;
}
else和最近的未匹配的if匹配,上述情况else语句未执行
if(condition){
return x;
}
else
return y;
结果为:成立返回x,否则返回y
可读性不强,改进后
if(condition){
return x;
}
else
{
return y;
}
在写判断语句中可以将语句反着写避免出现‘==’写成‘=’的情况
if(num =5)if (num==5)
if (5== mun)
判断一个数是否为奇数
int main() { int num; int b; scanf("%d", &num); b = num % 2; if (0 == b) { printf("%d为偶数\n", num); } else { printf("%d为奇数\n",num); } return 0; }
输出1-100之间的奇数
int main(){
int num = 1;
int b;
while (num<101)
{
b = num % 2;
if(0!=b)
{
printf("%d\n", num);
num++;
}
}
return 0;
}
- 注:scanf()使用时,接收数据不要使用换行号,否则在输入数据时无法识别\n
switch语句(多分支)
int main()
{
int week = 0;
scanf_s("%d", &week);
switch (week)
{
case 1:
printf("周一");
break;
case 2:
printf("周二");
break;
case 3:
printf("周三");
break;
case 4:
printf("周四");
break;
case 5:
printf("周五");
break;
case 6:
printf("周六");
break;
case 7:
printf("周日");
break;
}
return 0;
}
case 后边表达式要为整型;
int main(){
int week = 0;
scanf_s("%d", &week);
switch (week)
{
case 1:
case 2:
case 3:
case 4:
case 5:
printf("工作日");
break;
case 6:
case 7:
printf("休息日");
break;
default:
printf("输入错误");
break;
}
return 0;
}
defualt默认,可以在swtich语句中的任何位置,但是推荐放在最后;
int main(){
int n = 1;
int m = 2;
switch (n)
{
case 1:m++;
case 2:n++;
case 3:
switch (n)//switch 允许嵌套使用
{
case 1:n++;
case 2:m++; n++;
break;
}
case 4:m++;
break;
default:
break;
}
printf("%d\n%d\n", m, n);
return 0;
}
输出结果为m=5,n=3;
switch允许嵌套使用
要注意的是,内部的switch中的break只是跳出内部的break,并未结束外部判断,所以继续运行case4。
while 语句 语法结构
while(表达式)
循环语句:
int main(){
int i = 1;
while (i <= 10)
{
if (5 == i)
{
continue;
}
printf("%d\n", i);
i++;
}
return 0;
}
break :跳出循环,永久终止循环
continue:终止本次循环的从continue之后的语句不在执行,再次跳转到while语句的判断部分
getchar()等价于scanf("%c",&a);
putchar() 等价于printf(“%c”,a);
int main(){
int a;
while ((a=getchar()) != EOF )
{
putchar(a);
}
putchar(a);
return 0;
}
该程序输入EOF并不能跳出循环,因为他是分别接收E、O、F再分别输出的,结束程序应使用(Ctrl+C);