目录
1.分支结构的定义
2.if_else 流程图
3.if_else 结构
4.程序示例
1. 分支结构的定义
1.1 什么是分支结构?
①. 对于要先做判断再选择的问题就要使用分支结构。
②. 分支结构的执行是依据一定的条件选择执行路径,而不是严格按照语句出现的顺序。
③. 分支结构的程序设计方法的关键在于构造合适的分支条件和分析程序流程,根据不同的程序流程选择适当的分支语句。
④. 分支结构适合于带有逻辑或关系比较等条件判断的计算,设计这类程序时往往都要先绘制其程序流程图,然后根据程序流程写出源程序,这样做把程序设计分析与语言分开,使得问题简单化,易于理解。
2. if_else 流程图
2.1 流程图1
2.2 流程图2
3. if_else 结构
#include<stdio.h>
/** if_else 形式 */
int main()
{
// 单个 if 语句
if(condition)
{
//语句1;
}
// if_else 语句
if(condition)
{
//语句1;
}
else
{
//语句2;
}
// if_else 嵌套
if(condition)
{
//语句1;
}
else if(condition)
{
//语句2;
}
else if(condition)
{
//语句3;
}
else
{
//语句4;
}
return 0;
}
4. 程序示例
4.1 示例一:求两个数中的较大值
#include<stdio.h>
/** if_else 实现求两个数的较大值 */
int main()
{
int a = 0, b = 0, max = 0;
printf("请输入两个数:");
scanf_s("%d %d", &a, &b);
max = a;
if (max < b)
{
max = b;
}
printf("%d和%d较大值为:%d\n", a, b, max);
return 0;
}
运行结果
4.2 三目运算符(三元运算符)
4.2.1 定义:
if 语句在某些情况下可以用条件运算符 “ ? : " 来简化表达。" ? : " 是一个三元运算符,其构成的表达式格式为:<表达式1> ? <表达式2> : <表达式3>;执行逻辑:先计算表达式1,若其值为真(或非0),则计算表达式2(不计算表达式3),并将该值作为整个表达式的值;反之,即表达式1的值为假或为0,则计算表达式3(不计算表达式2),并将该值作为整个表达式的值。
4.2.2 示例二:求两个数中的较大值(示例一的改进)
#include<stdio.h>
/** 三目运算符 实现求两个数的较大值 */
int main()
{
int a = 0, b = 0, max = 0;
printf("请输入两个数:");
scanf_s("%d %d", &a, &b);
max = (a > b ? a : b); //三目运算符 ? :
printf("%d和%d较大值为:%d\n", a, b, max);
return 0;
}
运行结果
4.3 多分支语句 if_else
4.3.1 示例三:判断键盘输入字符的类别,是否是数字字符,是否是小写字符,是否是大写字符,以及其他字符
#include<stdio.h>
#include<ctype.h>
/**
* 判断键盘输入字符的类别
* 是否是数字字符
* 是否是小写字符
* 是否是大写字符
* 以及其他字符
*/
int main()
{
char ch;
printf("Input a char:");
ch = getchar(); // scanf_s("%c", &ch);
if (ch < 32)
{
printf("This is a control char!\n");
}
else if (isdigit(ch)) // isdigit()函数 判断是否是数字
{
printf("This is a digit!\n");
}
else if (isupper(ch)) // isupper()函数 判断是否是大写字母
{
printf("This is a capital letter!\n");
}
else if (islower(ch)) // islower()函数 判断是否是小写字母
{
printf("This is a small letter!\n");
}
else
{
printf("This is an other char!\n");
}
return 0;
}
运行结果(部分截图)
4.4 if 语句嵌套
4.4.1 示例四:输入两个数,比较两个数大小
#include<stdio.h>
/** if 语句嵌套 输入两个数 比较两个数大小 */
int main()
{
int a = 0, b = 0;
printf("Input two number: ");
scanf_s("%d %d", &a, &b);
if (a != b) // != 表示不等于
{
if (a > b)
{
printf("%d > %d \n", a, b);
}
else
{
printf("%d < %d \n", a, b);
}
}
else
{
printf("%d = %d \n", a, b);
}
return 0;
}
运行结果
4.4.2 总结:if 语句嵌套时,要注意 if 和 else 的配对问题。C 语言规定,else 总是与它前面最近的 if 配对。
4.5 与运算符 && 的使用
4.5.1 示例五:输入年龄,判断是否是青年
#include<stdio.h>
/** 输入年龄 判断是否为青年 */
int main()
{
int age;
printf("Input age:");
scanf_s("%d", &age);
if ( age > 16 && age < 28 ) // && 与运算符
{
printf("是青年...\n");
}
else
{
printf("不是青年...\n");
}
return 0;
}
运行结果
4.5.2 总结:C语言条件判断中,切记不要出现数学表达式。例如 大于等于一般不能写成 ≥ ,要写成 >= ,不等于不能写成 ≠ ,必须写成 != 等 。