前言
C/C++分三种结构:顺序结构,选择结构和循环结构。前两篇介绍了顺序结构的部分内容,现在用顺序结构编写代码:
#include <iostream>
using namespace std;
int main(){
int a;
cin >> a;
a += 1;
cout << a << endl;
a -= 1;
cout << a << endl;
a *= 2;
cout << a << endl;
a /= 2;
cout << a << endl;
a %= 2;
cout << a << endl;
return 0;
}
代码一行行堆砌,程序一行行运行,从上到下,从左到右。这就是顺序结构。
当然,只有顺序结构是不行的。
为什么要用选择结构
就像人要说如果,程序也要做决定。
如果没有选择结构,意味着没有明确的条件判断和分支执行的逻辑,程序可能会变得混乱且难以理解。没有选择结构,代码将无法根据不同情况下的条件来执行不同的操作,只能按照顺序直接执行每条语句,无法处理复杂的逻辑关系和多个选择路径。
这可能导致以下问题:
- 缺乏灵活性:没有选择结构意味着无法根据不同情况下的条件执行不同的代码块,导致程序无法应对不同的情况和需求。
- 代码冗余:没有选择结构可能会导致代码冗余,因为无法根据条件执行相应的代码块,可能需要在不同的地方重复编写相似的代码。
- 难以维护:没有选择结构的代码通常很难理解和维护,因为缺乏清晰的逻辑控制,使得代码难以追踪和调试,增加了错误和bug的风险。
- 低效率:没有选择结构可能会导致程序执行效率低下,因为无法根据条件选择合适的路径,可能需要执行不必要的操作或者重复的代码块。
因此,选择结构是编程中重要的一部分,能够帮助程序员更好地控制程序的流程和逻辑,提高代码的可读性、可维护性和效率。
如何使用选择结构
选择结构在大多数语言中都是用if-else分支来运用。
if
#include <iostream>
using namespace std;
int main(){
int a;
cin >> a;
if(a >= 5){
//如果a大于等于5则执行
cout << "a >= 5";
}
return 0;
}
接下来详解程序:
if(a >= 5):if是关键词,括号内是逻辑表达式(返回是(true)或非(false),是则执行,否则跳过)
输入5,输出a >= 5;输入4,无输出。
都讲到这里了,顺带提一嘴逻辑表达式:
C/C++中的逻辑表达式是用来判断条件是否为真或假的表达式。逻辑表达式的结果是一个布尔值,即true或false。
在C/C++中,常见的逻辑表达式包括以下运算符:
逻辑与(&&):当两个条件都为真时,返回true,否则返回false。
if (condition1 && condition2) {
// do something
}
逻辑或(||):当两个条件中至少有一个为真时,返回true,否则返回false。
if (condition1 || condition2) {
// do something
}
逻辑非(!):将一个条件取反,如果条件为真,返回false,否则返回true。
if (!condition) {
// do something
}
逻辑异或(^):当两个条件不同时,返回true,否则返回false。
if (condition1 ^ condition2) {
// do something
}
其余可自己查阅。
逻辑表达式可以用于条件语句(如if语句、while循环等)中,根据条件的真假来执行不同的代码块。
else
#include <iostream>
using namespace std;
int main(){
int a;
cin >> a;
if(a >= 5){
cout << "a >= 5";
}else{
cout << "a < 5";
}
return 0;
}
乍一看,只多了一个else{},实际上差别很大:
输入5,输出a >= 5;输入4,输出a < 5。
else表否则,与if连用(没有if的else是会报错的),意思是指如果不满足if条件,就执行else里面的内容,反之跳过else。
else if
#include <iostream>
using namespace std;
int main(){
int a;
cin >> a;
if(a >= 10){
cout << "a >= 10";
}else if(a >= 5){
cout << "a >= 5";
}else{
cout << "a < 5";
}
return 0;
}
输入10,输出a >= 10;输入5,输出a >= 5;输入4,输出a < 5。
大家可以看出来,else if就是否则如果,另一个分支。但是这里提一个醒:
- 如果满足if了就会跳过整个else if和else。
- 不满足就执行下面的else if。
- else if不满足就再往下执行其他的。
因此可得:
else if实际上就是else{if(){}}。
用这些,我们可以编写出更多彩的程序。但是过多的分支会让程序逻辑紊乱,难以维护。
最后,是每日愉悦时间。
这是自动感应陷阱!