一.if判断语句
1.程序中的判断:
if (要执行的判断,最后的返回值要是bool型的数据) {如果为真,要执行的代码段;
}
#include"iostream"
using namespace std;int main() {int ans;cin >> ans;if (ans > 1000) {cout << "ans大于1000" << endl;}
}
二.if else语句
应用场景:
在前面我们所了解的if语句中只能对一种情况进行判断,若满足,则执行,那么,不满足怎么办呢?
回答就是if else语句
1.程序中的判断:
#include"iostream"
using namespace std;int main() {if (条件判断语句) {若为真,则执行的代码段; } else {若为假,则执行的代码段; }
}
2.简单举例:
#include"iostream"
using namespace std;int main() {int month_money;cin >> month_money;if (month_money > 50000) {cout << "高富帅" << endl;} else {cout << "高帅" << endl;}
}
三.else if语句
应用场景:在某些情况下,判断条件不止一个,可能存在多个,那么这时候我们就需要用到else if语句了
1.程序中的判断:
#include"iostream"
using namespace std;int main() {if (条件判断1) {若1为真,执行的代码段; } else if (条件判断2) {若2为真,执行的代码段; } else if (条件判断n) {若n为真,执行的代码段; } else {上面所有的条件全都不满足时执行的代码段; }
}
2.举例:
#include"iostream"
using namespace std;int main() {int month_money;cin >> month_money;if (month_money < 10000) {cout << "小高富帅" << endl;} else if (month_money < 30000){cout << "高富帅" << endl;} else if (month_money < 50000) {cout << "大高富帅" << endl;} else {cout << "老高富帅" << endl;}
}
四.逻辑判断语句的嵌套
1.应用场景:
在很多场景中,并不仅仅只是多个并列条件,还会有满足前置条件才会二次判断的多层判断需求,我们要满足这种判断需求就需要用到嵌套判断语句
2.程序中的嵌套判断:
#include"iostream"
using namespace std;int main() {if (条件1) {代码段;if (满足条件1后的条件2) {代码段; } else {// 代表满足条件一后不满足条件2代码段; }} else {// 不满足条件1代码段; }
}
3.举例:
#include"iostream"
using namespace std;int main() {int age;cout << "请输入您的年龄:" << endl;cin >> age;if (age >= 18) {cout << "您在生理上已经成年了" << endl;int salary;cout << "请输入您的每月工资" << endl;cin >> salary;if (salary > 8000) {cout << "您已经足够养活自己,过上还不错的日子了" << endl;} else {cout << "加油" << endl; }} else {cout << "小朋友好好学习哦" << endl;}
}
五.基于逻辑运算符完成复杂判断
若有以下三种场景:
①:基于if else组合完成条件达成和未达成的代码执行
②:基于else if完成多个并行条件的判断
③:基于嵌套if完成多条件同时满足的判断
在场景不过于复杂的前提下,我们可以使用逻辑运算符快速完成上述需求
也就是&&(与),||(或),!(非)
1.&&
if (条件1 && 条件2) {只有条件1和2同时满足才会执行代码段;
}
2.||
if (条件1 || 条件2) {条件1或2只要满足一个即可执行代码段;
}
3.!
if (!条件) {只有当条件不成立才会执行代码段;
}
六.switch控制语句
1.应用场景:
在程序中经常有许多场景需要用到多条件判断,针对多条件判断的场景,我们需要用到switch控制语句
2.程序中:
#include"iostream"
using namespace std;int main() {switch (case) {case 1:代码段;break;case 2:代码段;break;...case n:代码段;break;default:若没有任何case符合,则执行这里的代码段; }
}
注意:
①:在switch语句中仅仅做值匹配(相等的判断)
②:break语句可以中断switch语句,否则就会继续向下执行其他的case段,包括default段,直到执行完或者遇到break为止
3.举例:
#include"iostream"
using namespace std;int main() {int date;cout << "请输入今天是周几(数字1-7):";cin >> date;switch (date) {case 1:cout << "今天是周一" << endl;break;case 2:cout << "今天是周二" << endl;break;case 3:cout << "今天是周三" << endl;break;case 4:cout << "今天是周四" << endl;break;case 5:cout << "今天是周五" << endl;break;case 6:cout << "今天是周六" << endl;break;case 7:cout << "今天是周天" << endl;break;default:cout << "您的输入有误" << endl;break;}
}
七.while循环语句
在生活中我们普遍循环重复着一天又一天,在程序中也同样有着循环,并且其还占着举足轻重的作用
1.程序中的循环:
while (条件表达式) {循环体代码;
}
在while循环中,只要满足了while循环中的条件,那么就会一直执行while循环中的代码
2.举例:
#include"iostream"
using namespace std;int main() {int count = 1;cout << "好习惯的养成需要21天" << endl;while (count <= 21) {cout << "坚持学习" << endl;count++;}
}
3.do while循环
do while循环只是while循环的一个变换形式,与while循环在功能上的不同点在于while循环只会在条件判断成立时才执行循环体中的代码,而do while循环会首先执行一次循环体中的代码再判断是否符合条件,是否进入while循环中
4.程序中的do while循环:
do {循环体;
} while (条件表达式)
5.while循环嵌套
嵌套的思想我们在之前就已经提到过,因此直接上一个简单案例帮助大家理解吧
#include"iostream"
using namespace std;// 输出九九乘法表
int main() {int i = 1;while (i <= 9) {int j = 1;while (j <= i) {cout << j << "*" << i << "=" << i * j << "\t";j++;}i++;cout << endl;}
}
八.for循环语句
除了while循环语句之外,C++还提供for循环语句完成循环
1.程序中的for循环语句:
#include"iostream"
using namespace std;int main() {for (循环因子初始化语句; 条件判断; 循环因子变化语句) {循环体; }
}
2.while循环与for循环的区别:
while循环中仅有条件判断,这是语法的要求,而循环因子是用户自行提供的
for循环中包含条件判断,循环因子初始化,循环因子变化,这些都是for循环语法中自带的功能
3.简单案例:
#include"iostream"
using namespace std;int main() {for (int i = 1; i <= 21; i++) {cout << "好好学习天天向上" << endl;}
}
4.for循环中的嵌套
同样还是嵌套的概念,直接给出简单的案例帮助大家理解
#include"iostream"
using namespace std;int main() {for (int i = 1; i <= 21; i++) {cout << "好好学习天天向上" << endl;for (int j = 1; j <= 3; j++) { // 这里作为循环因子的两个变量名不能相同,你应该能想明白是为什么吧 cout << "每天好好学习的奖励就是丰盛美味的一日三餐" << endl;}}
}
九.变量的作用域
1.前置知识:
在C++代码中,变量并不是随时随地都可以访问的,而是要看是否处于该变量的作用域中
2.怎么区分一个变量的作用域:
看变量定义在哪个大括号({})中,它被定义的大括号就是它的作用域(当然不包括它还没被定义的时候所在的位置)
#include"iostream"
using namespace std;int main() {// 上方不属于temple的定义域,因为还没被定义 int temple;// 在这之下的都是temple的作用域 for (int i = 1; i < 9; i++) {int ans;// ans的作用域仅限于每次它被for循环定义之后,在for循环中起作用 }// 这下面还属于ans的定义域吗?当然不是,因为ans只被局限于for循环中,根本出不来
}
十.循环终端语句
1.前言:
无论是while循环还是for循环都是重复性的执行特定的操作,但是如果出现了某种情况,我想要跳过满足某种条件的某次循环,或者一旦满足了某种条件,我就中止这个循环,那么改怎么办呢?
2.continue和break关键字
我们使用continue关键字跳过某一次循环,直接执行下一次
#include"iostream"
using namespace std;int main() {for (int i = 1; i <= 5; i++) {if (i == 3) // 如果i等于3,那么跳过本次循环 continue;cout << i << endl;}
}
我们使用break关键字直接中止整个循环
#include"iostream"
using namespace std;int main() {for (int i = 1; i <= 5; i++) {if (i == 3) // 如果i等于3,那么中止整个for循环 break;cout << i << endl;}
}
注意:无论是continue还是break,都是在执行到它们的位置之后才会进行跳过或者终止,那么在它们之前书写的代码是不受影响的
#include"iostream"
using namespace std;int main() {for (int i = 1; i <= 5; i++) {cout << "上方的代码" << endl; // 正常输出了5次,不受continue的影响 if (i == 3) // 如果i等于3,那么跳过本次循环 continue;cout << i << endl;}
}
#include"iostream"
using namespace std;int main() {for (int i = 1; i <= 5; i++) {cout << "上方的代码" << endl; // 输出了三次 if (i == 3) // 如果i等于3,那么中止整个for循环 break;cout << i << endl;}
}
十一.goto语句
1.goto语句的作用:
提供无条件跳转的功能
2.标签的概念:
我们定义一个标签配合goto进行使用,一旦遇到goto语句,就跳转到该标签的位置开始按顺序执行代码
3.标签的定义方式:
标签名:
4.goto语句的使用语法:
标签1:代码;
标签2:代码;
...
标签n:代码;
goto 标签5;
5.简单案例:
#include"iostream"
using namespace std;int main() {// 只要i小于等于10就会不断跳回到loop的位置重新开始执行 int i = 1;loop:cout << i << " ";i++;if (i <= 10)goto loop;cout << endl;
}