一.判断介绍
判断是C语言最常用的语法之一,判断是满足某种条件时,执行对应语句的一种语法结构。
下面介绍工作中最常用的几种类型的判断语句
语句 | 介绍 | 使用场景 |
---|---|---|
if | 由一个布尔表达式后跟一个或多个语句组成。 | 需要满足某种单个条件时,执行的语句。 |
if…else | 一个 if 语句加上可选的 else 语句。 | 满足if条件时执行一种语句,不满足if条件时执行的另一种语句。 |
if…else if…else | 一个 if 语句加上可选的 else if 语句,再加上else 语句。 | 存在三种及三种以上条件时需要执行对应的语句,最后的else是所有条件都不满足时,需要执行的语句。 |
switch语句 | 一个 switch 语句由一个switch表达式、满足表达式case执行的语句和一个default执行语句组成。 | 存在三种以上不同的变量条件时,执行符合表达式case的后面的语句,当表达式的值与所有case后面的常量表达式的值都不相等时,执行default后面的语句。 |
二.实例演示
if…else
判断一个数是否是正数
#include <stdio.h>
bool IfPositiveNumber(int x);
bool IfPositiveNumber(int x)
{
if (x > 0) {
printf("这个数为正数! \n");
return true;
}
printf("这个数不是正数! \n");
return false;
}
int main()
{
if (IfPositiveNumber(-1))
printf("条件为真! \n");
else
printf("条件为假! \n");
return 0;
}
if…else if…else
int main()
{
int a = 0;
if(a>0)
printf("这个数是正数! \n");
else if(a<0)
printf("这个数是负数! \n");
else
printf("这个数是0! \n");
return 0;
}
三.switch语句介绍
为什么要使用switch语句?
从语句结构和可读角度:
1、switch语句是多分支选择语句.用来实现多分支选择结构.if语句只有两个分支可供选择,而实际问题中常常要用到多分支的选择。
2、这些都可以用嵌套的if语句来外理(if else if else),但如果分支较多,则嵌套的if语句层数多,程序沉余长而且可读性降低.C语言提供switch语句直接外理多分支选择。
如何使用switch语句?
switch语句格式:
switch (表达式)
{
case '常量表达式 1':
语句 1
case '常量表达式 2':
语句2
...
case '常量表达式 n':
语句n
default:
语句 n+1
}
switch使用注意点
先看一个例子
举例:
int main()
{
char grade = 'B';
switch (grade)
{
case 'A':
printf("85-100\n");
case 'B':
printf("70-84\n");
case 'C':
printf("60-69\n");
case 'D':
printf("<60\n");
default:
printf("error\n");
}
}
这是一个根据等级来输出分数区间的例子。
注意点:
(1) switch括号内的"表达式",允许它为任何类型。
(2) 当表达式的值与某一个case后面的常量表达式的值相等时,就执行此case后面的语句,若所有的case中的常量表达式的值都没有与表达式的匹配的,就执行default后面的语句。
(3) 每一个case的常量表达式的值必须互不相同,否则就会出现互相矛盾的现象。
(4) 各个case和default的出现次序不影响执行结果。例如,可以先出现"default: …",再出现"case ‘C’: …",然后是"case ‘A’: …"
(5) 重要:执行完一个case后面的语句后,流程控制转移到下一个case继续执行."case常量表达式"只是起语句标号作用,并不是在该处进行条件判断.在执行swith语句时,根据switch后面表达式的值找到匹配的入口标号,就从此标号开始执行下去,不再进行判断。
所以,以上的结果是
若想执行符合的语句后就停止执行,需要加上break。
char grade = 'B';
switch (grade)
{
case 'A':
printf("85-100\n");
break;
case 'B':
printf("70-84\n");
break;
case 'C':
printf("60-69\n");
break;
case 'D':
printf("<60\n");
break;
default:
printf("error\n");
}
四.循环介绍
循环在各种语言中的使用也是非常多,主要的用途在于处理大量数据、遍历、长稳运行(重复运行)等等。
在C语言中,可以使用三种循环方式
语句 | 说明 |
---|---|
for | 多次执行一个语句,简化写代码的次数。 |
while | 当while中的条件为真时,反复执行while中的语句,直到条件语句不再符合。 |
do…while | 在循环主体的结尾进行条件判断,其余和while类似。 |
for循环
int main()
{
for (int i = 0; i < 100; i++)
{
if (i % 2 == 0)
printf("i=%d\n",i);
}
return 0;
}
注意:for 循环头部中的三个表达式可以省略一个或多个。这意味着 for 循环头部最短的形式是:for ( ; ; )
while
int main()
{
int i = 0;
while (i < 100)
{
if (i % 2 == 0)
printf("i=%d\n", i);
i++;
}
return 0;
}
注意:
一般来说,当循环内有计数器或索引变量需要被初始化,并且在每次循环时需要调整它们的值时,最好使用 for 循环,而不是 while 循环。
do…while
int main()
{
do
{
if (i % 2 == 0)
printf("i=%d\n", i);
i++;
} while (i < 100);
return 0;
}
注意:
1.do…while格式中,在最后的while()后要加上;
2.在控制表达式被第一次计算之前,循环体语句会首先被执行一次。与 while 和 for 循环不同,do…while 循环会确保循环体语句至少执行一次。如果控制表达式的值为 true,那么另一次循环就会继续;如果是 false,则循环结束。
以上三个例子都是输出100以内的偶数。