- gf24153 的博客
《Mod笔谈:逻辑结构》
- 2025-7-13 22:56:07 @
C++中,有三种喜闻乐见的逻辑结构,这篇就是来讲这个的(把前面的汇总一下)
一、顺序结构
最最简单的结构,就是一直往下执行,不会回头~~~(唱了起来)
图例:
代码演示
cout<<"我要吃potato";
二、分支结构
假设从前有一个mod国,如果他们姓mod,他们就要吃dom.如果他们姓han,他们就要吃man.
如果条件成立,那么就执行语句,这个就是分支语句.
1.if分支
if(条件){
语句;
}else{
语句;
}
例如:
#include <iostream>
using namespace std;
int main(){
string name;
cin>>name;
if (name == "mod"){
cout<<"dom";
}else{
cout<<"man";
}
return 0;
}
正是上面的例子.由于只有两个条件,可以直接用if-else
.
2.条件表达式
类似于if语句,条件表达式也是判断条件是否成立.一下是条件表达式的格式:
(A ? B : C)
类似于if,如果A成立,就执行B,否则执行C.例:
#include <iostream>
using namespace std;
int main(){
string name;
cin>>name;
cout << (name == "mod" ? "dom" : "man");
return 0;
}
改代码和上面的if语句效果一致,但行数明显减少,所以条件表达式又被称为"压行首选".
3.switch分支
switch语句有点特殊,它并不是判断表达式是否成立,而是用变量与值逐一匹配,如匹配则执行.格式:
switch(量){
case(值):语句;break;
case(值):语句;break;
case(值):语句;break;
...
default:否则执行;
}
需要注意case后的break,如果没有break,就不能跳出switch语句,从而执行之后所有case和default的语句,称为"case穿透".
*4.if语句扩展
如果要用if语句进行多个语句的判断,可以使用if语句的嵌套.例:
#include <iostream>
using namespace std;
int main(){
string name;
cin>>name;
if(name=="mod"){
cout<<"dom";
}else{
if(name=="han"){
cout<<"man";
}else{
if(name=="gf"){
cout<<"153";
}
}
}
return 0;
}
三、循环结构
如果一种结构会重复执行多次,或者达到某种条件才会结束,那么我们把它叫循环结构
就像这样
给大家介绍几个循环的结构
大哥:for循环
这家伙的好处在于可以设置一个局部变量,反正我比较常用
for(设置局部变量;条件;变化){
cout<<"我要吃potato";
}
二哥:while循环
这个家伙的条件更加简洁,方便你写条件,这个家伙最大特点在于他只有一个条件,剩下的得你自己写。
下面是代码
while(条件){
cout<<"我要吃potato";
}
三哥:do while
这个是真的少见,因为基本没用过,不仅如此,他还很反骨,别人在循环开头就判断条件,他不同,非得在结尾判断,这直接导致了他绝对会执行一次语句
具体长这样
do{
cout<<"我要吃potato";
while(条件);
最后,就是他们可以嵌套在一起,例如这样
for(int i=1;i<=n;i++){
int j=n;
while(j>=i){
cout<<"我要吃potato";
}
}