第六章、选择语句
什么是语句
语句 是程序执行的单位。通常一个语句作为一个完整的指令序列来执行。
C11 标准为我们提供的以下几种语句,供开发人员使用。它们分别是:
- 标签语句(labeled-statement)。
- 复合语句(compound-statement)。
- 表达式语句(expression-statement)。
- 选择语句(selection-statement)。
- 迭代语句(iteration-statement)。
- 跳转语句(jump-statement)。
以下几章我们先来研究 C 语言的这些语句。
选择语句
选择语句(Selection Statements),也称为条件语句或分支语句。选择语句用于根据条件决定程序的执行路径。它们允许程序在不同的条件下执行不同的代码块。
C 语言中选择语句的种类:
- if 语句
- switch 语句
选择语句的语法如下:
if ( expression ) statement
if ( expression ) statement else statement
switch ( expression ) statement
1. if 语句
作用:
根据条件表达式的值来选择性的执行语句。
if 语句的语法格式有两种:
// 第一种
if (表达式) 语句1
// 第二种
if (表达式) 语句1 else 语句2
语法中:
if和else是关键字。
if 语句语法说明
- 括号中的 表达式 先进行计算,如果表达式结果为真值(非零值)则执行语句1(仅执行一条语句)。
- 如果表达式结果为假值(零值)则如果有 else 子句(第二种语法)则执行语句2(也仅执行一条语句)。
示例1
写一个程序,输入你的年龄,如果年龄小于 18 岁,提示:你还未满18岁,不能在我驾校报名!,否则什么都不做。
#include <stdio.h>
int main(int argc, char *argv[]) {
int age;
printf("请输入年龄:");
scanf("%d", &age);
if (age < 18)
printf("你还未满18岁,不能在我驾校报名!\n");
printf("程序退出\n");
return 0;
}
运行结果1如下:
请输入年龄:16
你还未满18岁,不能在我驾校报名!
程序退出
运行结果2如下:
请输入年龄:21
程序退出
可见语句 printf("你还未满18岁,不能在我驾校报名!\n"); 实际受 if 语句控制。有 if 语句决定是否执行。而 printf("程序退出\n"); 则不受 if 语句控制。因为 if 语句执行控制离它最近的一条语句。
if 语句实现二分支结构
使用 if 语句的第二种 if - else 的语法,可以实现二选一的分支结构。如:
写一个程序,输入你的年龄,如果年龄小于 18 岁,则提示:你是未成年人!,否则提示:你是成年人!。
#include <stdio.h>
int main(int argc, char *argv[]) {
int age;
printf("请输入年龄:");
scanf("%d", &age);
if (age < 18)
printf("你是未成年人!\n");
else
printf("你是成年人!\n");
printf("程序退出\n");
return 0;
}
运行结果1如下:
请输入年龄:12
你是未成年人!
程序退出
运行结果2如下:
请输入年龄:20
你是成年人!
程序退出
练习:
写一个程序,输入一个学生的二科成绩:
- 打印出最高分是多少?
- 打印出最低分是多少?