前言
C语⾔是结构化的程序设计语⾔,大概有三种类型:顺序结构、选择结构、循环结构。生活中的遇见的大部分问题可以拆解为这三种结构或其组合。
由于顺序结构过于简单,本篇就不再赘述。
分支
1.if语句
①语法形式
if(表达式) 语句;
此处表达式有俩种结果——真和假,若真则执行语句;反之,则不执行。
若表达式计算结果或返回值(关系操作符或函数)为0,,则语句不执行;若非0,语句则执行。
以找奇数为例:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main(){
int num = 0;
scanf("%d",&num);
if(num%2 == 1)
printf("num是奇数\n",num);
return 0;
}
②else
作用:使得单分支变为了多分支。语法结构如下
if(表达式)
语句;
else(表达式)
语句;
以寻找奇数为例,多添加一个else就能找到偶数:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main(){
int num = 0;
scanf("%d",&num);
if(num%2 == 1)
printf("num是奇数\n",num);
else
printf("num是偶数\n",num);
return 0;
}
③if语句嵌套使用
可以进行多重判断,例如正负数的判断:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main() {
int num = 0;
scanf("%d", &num);
if (num > 0)
printf("num为正数\n", num);
else if (num == 0)
printf("num为0\n", num);
else
printf("num为负数\n", num);
return 0;
}
此处就运用了俩次if,else来完成对num正负性的判断。
④悬空else问题
多对if else时,else永远和最近的if匹配而非同一列上的if,下面举个例子:
为了避免初学时误解,大家可以选择用{ }来增强代码的逻辑性和可读性。
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main() {
int num = 0;
scanf("%d", &num);
if (num > 0)
printf("num为正数\n", num);
else {
if (num == 0)
printf("num为0\n", num);
else
printf("num为负数\n", num);
}
return 0;
}
2.switch语句
switch语句是一种特殊if......else的结构,可判断多个条件。
①语法形式
switch (expression) {
case value1: statement
case value2: statement
...
default: statement
}
上面的代码中,根据表达式 expression 不同的值,执⾏相应的 case 分支。若果没有对应的值,就执行default语句。
注意:1.switch后的expression必须是整型表达式
2.case后的值,必须是整型常量表达式