概述:
C语言语句可以分为一下五大类:
1.表达式语句 2.控制语句
3.函数调用语句 4.复合语句
5.空语句
这里我们主要学习控制语句。控制语句包括以下三大类:
1.条件判断语句,也叫分支语句,包括 if 语句,switch 语句;
2.循环执行语句,包括do while 语句,while 语句,for语句;
3.转向语句,包括 break 语句,goto 语句,continue 语句,return 语句;
一.if语句:
if语句用于选择结构语句
1)if 单选择结构:
语法结构示例:
#include<stdio.h>
int main()
{
int a = 0;
scanf("%d", &a);
if (a >= 0)
{
printf("%d", a);
}
return 0;
}
此代码中,输入一个数并赋值给a,如果a>0则返回1,为真,进行{}中的语句块,反之返回0,为假,跳过{}中的语句块,这就是常见的单选择结构语句。
2)else if 双选择结构:
语法结构示例:
#include<stdio.h>
int main()
{
int a = 0;
scanf("%d", &a);
if (a >= 0)
{
printf("%d", a);
}
else
{
printf("%d", -a);
}
return 0;
}
在此代码中,如果a>0,返回1,为真,则输入if后第一个{}里的语句块,反之返回0,为假,输出else 后{}中的语句块,该代码的含义是输出一个数的绝对值,这就是常见的双选择结构。
3)else if else if 多选择结构:
语句示例:
#include<stdio.h>
int main()
{
int a = 0;
scanf("%d", &a);
if (a >= 0)
{
printf("%d", a);
}
else if (a >= -10 && a < 0)
{
printf("%d", -a);
}
else
printf("数字太小");
return 0;
}
此代码中,当a大于等于0时,打印a,当a >= -10并且a < 0时,打印-a,当以上两种情况都不满足时,打印 数字太小 。当然,我们可以多次穿插else if语句,形成更多选择结构的语句。
注意:(1).if后没有加{}时默认只作用于if后第一个语句。
(2).C 语言规定了 if和else的就近匹配原则,即else和它上面的最近的没有配对的if配对,与书写格式无关。
二.switch多分支语句:
当一个代码出现多个条件与分支时,使用else if语句非常麻烦,这时候可以将else if语句换成switch语句进行适当的简化。
语法结构示例:
#include<stdio.h>
int main()
{
int a = 0;
scanf("%d", &a);
switch (a)
{
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;
default:
printf("输入错误");
break;
}
return 0;
}
此代码在a的值分别是1……7时分别输出 星期一……星期天,并在a的值不在1到7之间时输出 输入错误。
对于 break:多用于跳出循环,结束循环。对于以上代码,用于跳出switch语句。当将break去除时:switch在进入语句执行后,将沿顺序将后面的语句全部执行,直到退出switch语句。
#include<stdio.h>
int main()
{
int a = 0;
scanf("%d", &a);
switch (a)
{
case 1:
printf("星期一");
case 2:
printf("星期二");
case 3:
printf("星期三");
case 4:
printf("星期四");
case 5:
printf("星期五");
case 6:
printf("星期六");
case 7:
printf("星期天");
default:
printf("输入错误");
}
return 0;
}
如上,当代码break全部去除时,并将 1 或 2 赋给a,得到一下结果:
default:
当switch后表达式不符合下列所有case后常量值时,将从default进入switch并按顺序执行语句。
注:同一个switch中,case后的常量值必须互不相同,且不为小数;switch语句中表达式的值必须是整型、字符型或字符串类型,常量值1~n必须也是整型、字符型或字符串类型。