C++30天学习打卡(三)
个人博客地址
个人笔记记录而已,需要C++资料的可以在下面留言
看的视频和课件都来自黑马程序员公开课
程序流程结构
C/C++支持最基本的三种程序运行结构:顺序结构、选择结构、循环结构
- 顺序结构:程序按顺序执行,不发生跳转
- 选择结构:依据条件是否满足,有选择的执行相应功能
- 循环结构:依据条件是否满足,循环多次执行某段代码
选择结构
-
if语句
-
**作用:**执行满足条件的语句
-
if语句的三种形式:单行格式if语句;多行格式if语句;多条件的if语句
-
注意:在if判断语句后面,不要加分号
-
代码示例:三只小猪称体重
#include <iostream> using namespace std; int main() { // 三只小猪称体重 int A = 0; int B = 0; int C = 0; cout << "请输入小猪A的体重:" << endl; cin >> A; cout << "请输入小猪B的体重:" << endl; cin >> B; cout << "请输入小猪C的体重:" << endl; cin >> C; if (A >= C) { if (B >= A) { cout << "小猪B的体重最重" << endl; } else { cout << "小猪A的体重最重" << endl; } } else { if (B >= C) { cout << "小猪B的体重最重" << endl; } else { cout << "小猪C的体重最重" << endl; } } system("pause"); return 0; }
-
-
三目运算符
-
作用:通过三目运算符实现简单的判断,和if语句比较,三目运算符优点是短小整洁,缺点是如果用嵌套,结构不清晰
-
语法:
表达式1 ? 表达式2 :表达式3
-
解释:如果表达式1的值为真,执行表达式2,并返回表达式2的结果;如果表达式1的值为假,执行表达式3,并返回表达式3的结果。
-
示例:
#include <iostream> using namespace std; int main() { int a = 10; int b = 0; int c = 0; c = a > b ? a : b; cout << "c = " << c << endl; // C++中的三目运算符返回的是变量,可以继续赋值 (a > b ? a : b) = 100; cout << "a = " << a << endl; cout << "b = " << b << endl; cout << "c = " << c << endl; system("pause"); return 0; }
-
-
switch语句
-
作用:执行多条件分支语句
-
语法:
switch(表达式) { case 结果1:执行语句;break; case 结果2:执行语句;break; ... default:执行语句;break; }
-
示例:
#include <iostream> using namespace std; int main() { int score = 0; // 给电影评分 /* 9-10-非常好 7-8-还行 5-6-一般 5以下-烂片 */ cout << "请给该电影评分:" << endl; cin >> score; switch (score) { case 10: case 9: cout << "这部电影非常好看" << endl; break; case 8: case 7: cout << "这部电影还行" << endl; break; case 6: case 5: cout << "这部电影一般" << endl; break; default: cout << "这部电影是烂片,别看" << endl; break; } system("pause"); return 0; }
-
注意:
1.switch语句中表达式类型只能是整型或者字符型;
2.case里如果没有break,那么程序会一直向下执行;
3.与if语句比,对于多条件判断时,switch的结构清晰,执行效率高,缺点是switch不可以判断区间。
-
循环结构
-
while循环语句
-
作用:满足循环条件,执行循环语句。
-
语法:while(循环条件){循环语句}
-
示例:猜数字,注意:在执行循环语句时候,程序必须提供跳出循环的出口,否则出现死循环。
#include <iostream> #include <stdlib.h> using namespace std; int main() { // 猜数字游戏 bool flag = 1; while (flag) { // 随机生成数字 int a = rand() % 101; int b = 0; cout << "产生的随机数为:" << a << endl; // 测试用 while (true) { cout << "请玩家输入猜测的数字:" << endl; cin >> b; if (b > a) { cout << "数字猜大了哦" << endl; } else if (b < a) { cout << "猜的数字有点小了哈" << endl; } else { cout << "恭喜玩家猜对了呢" << endl; break; } } cout << "退出游戏输入0,继续游戏输入1" << endl; cin >> flag; } cout << "退出游戏了哦" << endl; system("pause"); return 0; }
-
-
do…while循环语句
-
作用:满足循环条件,执行循环语句;
-
语法:
do{ 循环语句 } while(循环条件);
-
注意:与while的区别在于do…while会先执行一次循环语句,再判断循环条件;
-
示例:水仙花数,水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身。
#include <iostream> using namespace std; int main() { // 水仙花数 int a = 0; int b = 0; int c = 0; int start = 100; do { int a = start / 100; // 百位 b = (start / 10)%10; // 十位 c = start % 10; // 个位 if ((a*a*a + b*b*b + c*c*c) == start) { cout << start << endl; } start++; } while (start < 1000); system("pause"); return 0; }
-
-
for循环语句
-
作用: 满足循环条件,执行循环语句
-
语法:
for(起始表达式;条件表达式;末尾循环体) { 循环语句; }
-
注意:
1.for循环中的表达式,要用分号进行分隔
2.while , do…while, for都是开发中常用的循环语句,for循环结构比较清晰,比较常用
-
示例:敲桌子:从1开始数到数字100, 如果数字个位含有7,或者数字十位含有7,或者该数字是7的倍数,我们打印敲桌子,其余数字直接打印输出。
#include <iostream> using namespace std; int main() { // 敲桌子 for (int i = 1; i <= 100; i++) { if (i / 10 == 7 || i % 10 == 7 || i % 7 == 0) { cout << "敲桌子\t"; } else { cout << i <<"\t"; } } system("pause"); return 0;
-
-
嵌套循环
-
作用:在循环体中再嵌套一层循环,解决一些实际问题;
-
示例:九九乘法表
#include <iostream> using namespace std; int main() { // 九九乘法表 for (int i = 1; i < 10; i++) { for (int j = 1; j < 10; j++) { if (j <= i){ cout << j << " * " << i << " = " << i * j << "\t"; } } cout << "\n"; } system("pause"); return 0;
-
跳转语句
-
break语句
- 作用: 用于跳出选择结构或者循环结构
- 使用的时机:
- 出现在switch条件语句中,作用是终止case并跳出switch;
- 出现在循环语句中,作用是跳出当前的循环语句;
- 出现在嵌套循环中,跳出最近的内层循环语句
-
continue语句
- 作用:在循环语句中,跳过本次循环中余下尚未执行的语句,继续执行下一次循环
- 注意:continue并没有使整个循环终止,而break会跳出循环。
-
goto语句
-
作用:可以无条件跳转语句
-
语法:
goto 标记;
如果标记的名称存在,执行到goto语句时,会跳转到标记的位置。 -
示例:在程序中不建议使用goto语句,以免造成程序流程混乱。
#include <iostream> using namespace std; int main() { cout << "1" << endl; goto FLAG; cout << "2" << endl; cout << "3" << endl; cout << "4" << endl; FLAG: cout << "5" << endl; system("pause"); return 0; }
-