目录
C/C++支持最基本的三种程序运行结构:顺序结构、选择结构、循环结构
- 顺序结构:程序按顺序执行,不发生跳转
- 选择结构:依据条件是否满足,有选择的执行相应功能
- 循环结构:依据条件是否满足,循环多次执行某段代码
一、选择结构
1.if语句
①作用:执行满足条件的语句
②if语句的三种形式
- 单行格式if语句
- 多行格式if语句
- 多条件的if语句
// 单分支
if (condition) {
// 条件为真时执行
}
// 双分支
if (condition) {
// 条件为真时执行
} else {
// 条件为假时执行
}
// 多分支
if (condition1) {
// 条件1为真时执行
} else if (condition2) {
// 条件2为真时执行
} else {
// 所有条件为假时执行
}
(1)单行格式if语句例题
题目:判断一个数是否为正数
#include <iostream>
using namespace std;
int main() {
int num;
cout << "请输入一个整数: ";
cin >> num;
if (num > 0) {
cout << num << " 是正数" << endl;
}
return 0;
}
(2)双分支 if 语句例题
题目:判断一个数是奇数还是偶数
#include <iostream>
using namespace std;
int main() {
int num;
cout << "请输入一个整数: ";
cin >> num;
if (num % 2 == 0) {
cout << num << " 是偶数" << endl;
} else {
cout << num << " 是奇数" << endl;
}
return 0;
}
(3)多分支 if 语句例题
题目:根据考试成绩输出对应的等级
#include <iostream>
using namespace std;
int main() {
int score;
cout << "请输入考试成绩(0-100): ";
cin >> score;
if (score >= 90) {
cout << "等级: A" << endl;
} else if (score >= 80) {
cout << "等级: B" << endl;
} else if (score >= 70) {
cout << "等级: C" << endl;
} else if (score >= 60) {
cout << "等级: D" << endl;
} else {
cout << "等级: F" << endl;
}
return 0;
}
2. 三目运算符
①含义:简化版的双分支 if-else 语句
②语法:
condition ? expression1 : expression2;
③作用:根据条件返回不同的值
④示例:返回两个数中的较大值
int a = 10, b = 20;
int max = (a > b) ? a : b; // max = 20
3. switch 语句
①含义:基于表达式的值执行多个分支中的一个
②语法:
switch (expression) {
case value1:
// 执行代码块1
break;
case value2:
// 执行代码块2
break;
default:
// 所有case不匹配时执行
}
③作用:替代复杂的多分支 if 语句
④示例:根据星期几输出活动安排
int day = 3;
switch (day) {
case 1: case 2: case 3: case 4: case 5:
cout << "工作日";
break;
case 6: case 7:
cout << "休息日";
break;
default:
cout << "无效输入";
}
4.练习题
①温度转换提示
#include <iostream>
using namespace std;
int main() {
int temperature;
cout << "请输入当前温度(整数):";
cin >> temperature;
if (temperature >= 30) {
cout << "穿短袖短裤" << endl;
} else if (temperature >= 20) {
cout << "穿薄外套" << endl;
} else if (temperature >= 10) {
cout << "穿毛衣" << endl;
} else {
cout << "穿羽绒服" << endl;
}
return 0;
}
②闰年判断
#include <iostream>
using namespace std;
int main() {
int year;
cout << "请输入年份:";
cin >> year;
bool isLeapYear = (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
cout << year << (isLeapYear ? " 是闰年" : " 不是闰年") << endl;
return 0;
}
③计算器程序
#include <iostream>
using namespace std;
int main() {
double num1, num2;
char op;
cout << "请输入两个数字:";
cin >> num1 >> num2;
cout << "请输入运算符(+、-、*、/):";
cin >> op;
double result;
bool valid = true;
switch (op) {
case '+':
result = num1 + num2;
break;
case '-':
result = num1 - num2;
break;
case '*':
result = num1 * num2;
break;
case '/':
if (num2 != 0) {
result = num1 / num2;
} else {
cout << "错误:除数不能为零!" << endl;
valid = false;
}
break;
default:
cout << "错误:无效的运算符!" << endl;
valid = false;
}
if (valid) {
cout << num1 << " " << op << " " << num2 << " = " << result << endl;
}
return 0;
}