- 前言
- 三、运算符
- 1. 算术运算符-加减乘除运算
- 2. 算术运算符-取模运算
- 3.算术运算符-递增递减
- 4.赋值运算符
- 5.比较运算符
- 6.逻辑运算符
- 示例1:逻辑非-运算符:!
- 示例2:逻辑与-运算符:&&
- 示例3:逻辑或-运算符:||
- 四、程序流程结构
- 1.选择结构
- 1.1 if语句
- 单行格式if语句: ==if(条件){ 条件满足执行的语句 }==
- 多行格式if语句: ==if(条件){ 条件满足执行的语句 }else{ 条件不满足执行的语句 }==;
- 多条件的if语句: ==if(条件){ 条件1满足执行的语句 }else if{ 条件2满足执行的语句 }... else{ 都不满足执行的语句 }==;
- 嵌套if语句: ==在if语句中,可以嵌套使用if语句,达到更精确的要求==;
- 练习案例:三只小猪称体重
- 1.2 三目运算符
- 1.3 switch语句
- 2.循环结构
- 2.1 while循环语句
- while循环练习案例:猜数字
- 2.2 do...while循环语句
- 案例练习:水仙花数
- 2.3 for循环语句
- 练习案例:敲桌子
- 2.4 嵌套循环
- 练习案例 : 乘法口诀表
- 3、跳转语句
- 3.1、 break语句
- 3.2、continue语句
- 3.3、goto语句
- 总结
前言
续前节C++学习记录1
三、运算符
- 作用:用于执行代码的运算
- 主要运算符有
-
作用:用于处理四则运算
-
算术运算符包括以下符号:
-
注:两个整数相除 ,结果依然是整数,将小数部分去除
#includeusing namespace std; int main() { // 加减乘除 int a1 = 10; int b1 = 3; cout << a1 + b1 << endl; cout << a1 - b1 << endl; cout << a1 * b1 << endl; cout << a1 / b1 << endl; // 两个整数相除 结果依然是整数,将小数部分去除 int a2 = 10; int b2 = 20; cout << a2 / b2 << endl; int a3 = 10; int b3 = 0; //cout << a3 / b3 << endl; //错误!两个数相除,除数不可以为0 //两个小数可以相除 double d1 = 0.5; double d2 = 0.25; cout << d1 / d2 << endl;//运算的结果也可以是小数 system("pause"); return 0; }
- 总结: 两个数相除,除数不可以为0
2. 算术运算符-取模运算
- 取模运算符:%
#include3.算术运算符-递增递减using namespace std; int main() { int a1 = 10; int b1 = 3; cout << a1 % b1 << endl; int a2 = 10; int b2 = 20; cout << a2 % b2 << endl; int a3 = 10; int b3 = 0; // 两个数相除 除数不可以为0 所以也做不了取模运算 //cout << a3 % b3 << endl; // 错误 // 两个小数是不可以做取模运算的 double d1 = 3.14; double d2 = 1.1; //cout << d1 % d2 << endl; 错误 system("pause"); return 0; }
| 运算符 | 术语 | 示例 | 结果 |
|---|---|---|---|
| ++ | 前置递增 | a2 = 10;b2 = ++a2 * 10; | a2 = 11;b2 = 110 |
| ++ | 后置递增 | a2 = 10;b2 = a2++ * 10; | a2 = 11;b2 = 100 |
- 前置递增和后置递增的区别:
- 前置递增 先让变量+1 然后进行表达式运算
- 后置递增 先进行表达式运算,后让变量+1
- 前置递减和后置递减的区别类似于前置递增和后置递增
#include4.赋值运算符using namespace std; int main() { //一、递增 //1、前置递增 int a = 10; ++a; //让变量+1 cout << "a = " << a << endl; //2、后置递增 int b = 10; b++; //让变量+1 cout << "b = " << b << endl; //3、前置和后置的区别 // 前置递增 先让变量+1 然后进行表达式运算 int a2 = 10; int b2 = ++a2 * 10; cout << "a2 = " << a2 << endl; cout << "b2 = " << b2 << endl; // 后置递增 先进行表达式运算,后让变量+1 int a3 = 10; int b3 = a3++ * 10; cout << "a3 = " << a3 << endl; cout << "b3 = " << b3 << endl; //二、递减 //1、前置递减 int c = 10; --c; //让变量-1 cout << "a = " << a << endl; //2、后置递减 int d = 10; d--; //让变量-1 cout << "d = " << d << endl; //3、前置和后置的区别 // 前置递减 先让变量-1 然后进行表达式运算 int c2 = 10; int d2 = --c2 * 10; cout << "c2 = " << c2 << endl; cout << "d2 = " << d2 << endl; // 后置递减 先进行表达式运算,后让变量-1 int c3 = 10; int d3 = c3-- * 10; cout << "c3 = " << c3 << endl; cout << "d3 = " << d3 << endl; system("pause"); return 0; }
- 作用: 用于将表达式的值赋给变量
- 赋值运算符包括以下几个符号:
#include练习案例:三只小猪称体重using namespace std; int main() { //赋值运算 // = int a = 10; a = 100; cout << "a = " << a << endl; // += a = 10; a += 2; // a = a + 2; cout << "a = " << a << endl; // -= a = 10; a -= 2; // a = a - 2; cout << "a = " << a << endl; // *= a = 10; a *= 2; // a = a * 2; cout << "a = " << a << endl; / // 1、提示输入高考分数 int score = 0; cout << "请输入一个高考分数" << endl; cin >> score; // 2、显示高考分数 cout << "您输入的高考分数为; " << score << endl; // 3、判断 // 如果大于600, 一本 // 大于700 北大 // 大于650 清华 // 其余 人大 // 如果大于500, 二本 // 如果大于400, 三本 // 其余情况, 未考上本科 if (score > 600) { cout << "恭喜您考上了一本!" << endl; if (score > 700) { cout << "您能考入北京大学" << endl; } if (score > 650) { cout << "您能考入清华大学" << endl; } else { cout << "您能考入人民大学" << endl; } } else if (score > 500) { cout << "恭喜您考上了二本!" << endl; } else if (score > 400) { cout << "恭喜您考上了三本!" << endl; } else { cout << "很遗憾,您没有考上本科,请再接再厉。" << endl; } system("pause"); return 0; }
有三只小猪ABC,请分别输入三只小猪的体重,并且判断哪只小猪最重?
#include1.2 三目运算符using namespace std; int main() { // 三只小猪称体重,判断哪只最重 //1、创建三只小猪的体重变量 int num1 = 0; int num2 = 0; int num3 = 0; //2、让用户输入三只小猪的重量 cout << "请输入小猪A的体重:" << endl; cin >> num1; cout << "请输入小猪B的体重:" << endl; cin >> num2; cout << "请输入小猪C的体重:" << endl; cin >> num3; cout << "小猪A的体重为:" << num1 << endl; cout << "小猪B的体重为:" << num2 << endl; cout << "小猪C的体重为:" << num3 << endl; //3、判断哪只最重 // 先判断A和B重量 if (num1 > num2) //A比B重 { if (num1 > num3) //A比C重 { cout << "小猪A最重" << endl; } else //C比A重 { cout << "小猪C最重" << endl; } } else //B比A重 { if (num2 > num3) //B比C重 { cout << "小猪B最重" << endl; } else //C比B重 { cout << "小猪C最重" << endl; } } system("pause"); return 0; }
作用: 通过三目运算符实现简单的判断
语法: 表达式1? 表达式2:表达式3
解释:
- 如果表达式1的值为真,执行表达式2,并返回表达式2的结果;
- 如果表达式1的值为假,执行表达式3,并返回表达式3的结果。
#include1.3 switch语句using namespace std; int main() { //三目运算符 //创建三个变量a b c //将a和b做比较,将变量大的值赋值给变量c int a = 10; int b = 20; 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; system("pause"); return 0; }
作用:执行多条件语句
语法:
#includeusing namespace std; int main() { //switch语句 //给电影打分 // 10-9分 经典 // 8-7分 非常好 // 6-5分 一般 // 5分以下 烂片 //1、提示用户给电影评分 cout << "请给电影进行打分" << endl; //2、用户开始进行打分 int score = 0; cin >> score; cout << "您打的分数为:" << score << endl; // 3、根据用户输入的分数来提示用户最后的结果 switch (score) { case 10: cout << "您认为是经典电影" << endl; break; // 退出当前分支 case 9: cout << "您认为是经典电影" << endl; break; case 8: cout << "您认为电影非常好" << endl; break; case 7: cout << "您认为电影非常好" << endl; break; case 6: cout << "您认为电影一般" << endl; break; case 5: cout << "您认为电影一般" << endl; break; default : cout << "您认为这是烂片" << endl; break; } //if 和 switch区别? //switch 缺点,判断时候只能是整型或者字符型,不可以是一个区间 //switch 优点,结构清晰,执行效率高 system("pause"); return 0; }
- 注意1:switch语句中的表达式类型只能是整型或者字符型
- 注意2:case里如果没有break,那么程序会一直向下执行
- 总结:与if语句比,对于多条件判断是,switch的结构清晰,执行效率高,缺点是switch不可以判断区间
**作用:**满足循环条件,执行循环语句
**语法:**while (循环条件) { 循环语句 }
解释:== 只要循环条件为真,就执行循环语句 ==
#includeusing namespace std; int main() { //while循环 //在屏幕中打印0-9 这10个数字 int num = 0; //while()中填入循环条件 //注意事项:在写循环一定要避免死循环的出现 while (num < 10) { cout << num << endl; num++; } system("pause"); return 0; }
- 注意:在执行循环语句时候,程序必须提供跳出循环的出口,否则出现死循环
案例描述:系统随机生成一个1到100的数字,玩家进行猜测,如果猜错,提示玩家数字过大或过小,如果猜对恭喜玩家胜利,并退出游戏。
#include2.2 do…while循环语句using namespace std; //time系统头文件包含 #include int main() { // 添加随机数种子 //1、系统生成随机数种子 作用:利用当前系统时间生成随机数,防止每次随机数都一样 srand((unsigned int)time(NULL)); //需要写一个头文件 int num = rand() % 100 + 1; //rand()%100 + 1 生成 0+1 ~99+1 的随机数 //cout << num << endl; //2、玩家进行猜测 int val = 0; //玩家输入数据 while (1) { cin >> val; //3、判断玩家的猜测 //猜错 提示猜的结果 过大或者过小 重新返回第2步 if (val > num) { cout << "猜测过大" << endl; } else if (val < num) { cout << "猜测过小" << endl; } else { cout << "恭喜您猜对了" << endl; //猜对 退出游戏 break;// break,可以利用关键字来退出当前循环 } } system("pause"); return 0; }
- 作用:满足循环语句,执行循环语句
- 语法:do{循环语句} while(循环条件)
- 注意:与while的区别在于do…while会先执行一次循环语句,再判断循环条件
#include案例练习:水仙花数using namespace std; int main() { //do...while语句 //在屏幕中输入0到9这10个数 int num = 0; do { cout << num << endl; num++; } while (num < 10); //do...while和while循环区别在于:do...while先执行一次循环结构,再判断循环条件 system("pause"); return 0; }
- 案例描述:水仙花数是指一个3位数,它的每个位上的数字的3次幂之和等于它本身
- 例如:1^3 + 5^3 + 3^3= 153
- 请利用do…while语句,求出所有3位数中的水仙花数
#include2.3 for循环语句using namespace std; #include int main() { //1、先打印所有三位数字 int num = 100; do { //2、从所有三位数中知道水仙花数 int a = 0; //个位 int b = 0; //十位 int c = 0; //百位 a = num % 10; //获取数字的个位 b = num / 10 % 10; //获取数字的十位 c = num / 100; //获取数字的百位 if (a*a*a + b*b*b + c*c*c == num )//如果是水仙花数,才打印 { cout << num << endl; } num++; } while (num < 1000); system("pause"); return 0; }
- 作用:满足循环条件,执行循环语句
- 语法:for(起始表达式;条件表达式;末尾循环体){循环语句;}
#include练习案例:敲桌子using namespace std; #include int main() { //for循环 //从数字0 打印到 数字9 for (int i = 0; i<10; i++) { cout << i << endl; }//可以看成是下面代码的简化版 //15行到25行可以看做是上面四行代码的具体解释 system("pause"); return 0; }
案例描述:从1开始数到数字100,如果数字个位含有7,或者数字十位含有7,或者该数字是7的倍数,
我们打印敲桌子,其余数字直接打印输出。
#include2.4 嵌套循环using namespace std; #include int main() { //敲桌子案例 //1、先输出1~100数字 for (int i = 1; i <= 100; i++) { //2、从100个数字中找到特殊数字,打印“敲桌子” //如果是7的倍数、个位有7、或者十位是7,打印敲桌子 if (i % 7 == 0 || i % 10 == 7 || i / 10 == 7)//如果是特殊数字,打印敲桌子 { cout << "敲桌子" << endl; } else //如果不是特殊数字,才打印数字 { cout << i << endl; } } system("pause"); return 0; }
#include练习案例 : 乘法口诀表using namespace std; #include int main() { //利用嵌套循环实现星图 for (int i = 0; i < 10; i++)//外层循环 { // 内层循环 //打印一行星图 for (int j = 0; j < 10; j++) { cout << "* "; } cout << endl; } system("pause"); return 0; }
编程的思路:
#include3、跳转语句 3.1、 break语句using namespace std; #include int main() { //乘法口诀表 //打印行数 for (int i = 1; i <= 9; i++) { //cout << i << endl; for (int j = 1; j <= i; j++) { cout << j << "*" << i << "=" << j*i << " "; } cout << endl; } system("pause"); return 0; }
作用:用于跳出选择结构或者循环结构
break使用的时机:
- 出现在switch条件语句中,作用是终止case并跳出switch
- 出现在循环语句中,作用是跳出当前的循环语句
- 出现在嵌套循环中,跳出最近的内层循环语句
#include3.2、continue语句using namespace std; #include int main() { //break的使用时机 //1、出现在switch语句中 //cout << "请选择副本难度" << endl; //cout << "1、普通" << endl; //cout << "2、中等" << endl; //cout << "3、困难" << endl; //int select = 0; //创建选择结果的变量 //cin >> select; //switch (select) //{ //case 1: // cout << "您选择的是普通难度" << endl; // break;//退出switch语句 //case 2: // cout << "您选择的是中等难度" << endl; // break; //case 3: // cout << "您选择的是困难难度" << endl; // break; //default: // break; //} //2、出现在循环语句中 //for (int i = 0; i < 10; i++) //{ // //如果i等于5,退出循环,不再打印 // if (i == 5) // { // break;//退出循环 // } // cout << i << endl; //} //3、出现在嵌套循环语句中 for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { if (j == 5) { break; //退出内层循环 } cout << "* "; } cout << endl; } system("pause"); return 0; }
作用:在循环语句中,跳过本次循环中余下未执行的语句,继续执行下依稀循环
#include3.3、goto语句using namespace std; #include int main() { //continue语句 for (int i = 0; i <= 100; i++) { //如果是奇数输出,偶数不输出 if (i % 2 == 0) //0 2 4 6... { continue; //可以筛选条件,执行到此就不再向下执行,执行下次循环 //break会退出循环,而continue不会 } cout << i << endl; } system("pause"); return 0; }
作用:可以无条件跳转语句
语法:goto标记;
解释:如果标记的名称存在,执行到goto语句时,会跳转到标记的位置
#include总结using namespace std; #include int main() { //goto语句 cout << "1、xxxx" << endl; cout << "2、xxxx" << endl; goto FLAG; cout << "3、xxxx" << endl; cout << "4、xxxx" << endl; FLAG: cout << "5、xxxx" << endl; system("pause"); return 0; }
时隔一个月终于把C++学习2写完了,中间帮老师写东西是真的难,尤其还有毕业一堆事,回到家里学习状态也不是很好。
- 注:markdown中图片居中加 #pic_center



