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";
    }
}