一、分支语句
(1)if语句
(2) switch语句
二、循环语句
(1)while循环
(2)for循环
(3)do...while循环
分支语句
1、if语句
语法形式如下:
类型一
1 if (表达式)
2 语句;
例子:输入一个数,判断是否为偶数
#include <stdio.h> int main() { int num = 0; scanf("%d", &num); if(num % 2 == 0) printf("%d 是偶数\n", num); return 0; }
类型二
1 if (表达式)
2 语句1;
3 else
4 语句2;
例子:输入一个年龄,判断是否成年
#include <stdio.h> int main() { int age = 0; scanf("%d", &age); if(age > 18) printf("成年"); else printf("未成年"); return 0; }
在if语句中,表达式成立(为真),则语句执行,表达式不成立(为假),则语句不执行
2、switch语句
语法形式如下:
1 switch (expression)2 {3 case value1: statement4 case value2: statement5 default: statement6 }
特别注意:(1)switch后的expression必须是整型表达式。
(2)case后的值必须是整型常量表达式
(3)case和后面的数字之间必须有空格
例子:输入一个整数值,计算除3之后的余数
#include <stdio.h>
int main()
{
int n = 0;
scanf("%d", &n);
switch(n%3)
{
case 0:
printf("整除,余数为0\n");
break;
case 1:
printf("余数是1\n");
break;
case 2:
printf("余数是2\n");
break;
}
return 0;
}
代码中break用来跳出switch语句
如果没有break会怎么样?
例:
#include <stdio.h>
int main()
{
int n = 0;
scanf("%d", &n);
switch(n%3)
{
case 0:
printf("整除,余数为0\n");
case 1:
printf("余数是1\n");
case 2:
printf("余数是2\n");
}
return 0;
}
结果是:
我们发现,7除以3本来余数是1,但是我们发现程序运⾏的结果多了⼀⾏“余数是2”的打印。
这是为什么呢?
原因是
switch
语句也是分⽀效果的,只有在
switch
语句中使⽤
break
才能在跳出
switch
语 句,如果某⼀个 case
语句的后边没有
break
语句,代码会继续往下执⾏,有可能执⾏其他
case 语句中的代码,直到遇到 break
语句或者
switch
语句结束。就⽐如上⾯的代码就执⾏了
case 2 中的语句。
所以在
switch
语句中
break
语句是⾮常重要的,能实现真正的分⽀效果。
当然,
break
也不是每个
case
语句都得有,这就得根据实际情况来看了。
循环语句
1、while循环
语法形式如下:
1 while (表达式)2 语句;
判断表达式,若表达式的值为0,循环直接结束;若表达式的值不为0,则执行表达式中的语句,语句执行完后在继续判断,是否进行下一次。以此来实现循环。
例子:在屏幕上打印1~10的值
#include <stdio.h>
int main()
{
int i = 1;
while(i<=10)
{
printf("%d ", i);
i = i+1;
}
return 0;
}
2、for循环
语法形式如下:
1 for(表达式1;表达式2;表达式3)
2 语句;
表达式1:⽤于循环变量的初始化
表达式2:⽤于循环结束条件的判断
表达式3:⽤于循环变量的调整
例子:在屏幕上打印1~10的值
#include <stdio.h>
int main()
{
int i = 0;
for(i=1; i<=10; i++)
{
printf("%d ", i);
}
return 0;
}
3、do...while循环
语法形式如下:
1 do
2 语句;
3 while(表达式)
while
和
for
这两种循环都是先判断,条件如果满⾜就进⼊循环,执⾏循环语句,如果不满⾜就跳
出循环;
⽽
do while
循环则是先直接进⼊循环体,执⾏循环语句,然后再执⾏
while
后的判断表达式,表
达式为真,就会进⾏下⼀次,表达式为假,则不再继续循环。所以do...while至少执行一次。
例子:在屏幕上打印1~10的值
#include <stdio.h>
int main()
{
int i = 1;
do
{
printf("%d ", i);
i = i + 1;
}while(i<=10);
return 0;
}