文章目录
- 算术运算符
- 前后置运算符
- 赋值运算符
- 比较运算符
- 逻辑运算符
- if语句
- 1、单行if
- 2、多行if
- 3、多条件if
- 4、嵌套if语句
- 5、案例:三只小猪称体重
- 三目运算符
- switch语句
- while循环语句
- 案例:1、猜数字
- do-while循环语句
- 案例:1、水仙花数
- for循环语句
- 案例:1、敲桌子
- 循环嵌套
- 案例:1、乘法口诀表
- break语句
- continue语句
- goto语句
基于b站黑马c++视频做的笔记,仅供参考和复习!!!
算术运算符
取模运算’%'的本质是求余数,两个小数不可以做取模运算
int a1 = 10;
int b1 = 3;
cout << a1 + b1 << endl;
cout << a1 - b1 << endl;
cout << a1 * b1 << endl;
cout << a1 / b1 << endl; //两个整数相除,结果依然是整数,小数部分去除
double d1 = 0.5;
double d2 = 0.22;
cout << d1 / d2 << endl; //2.27273
int a = 15;
int b = 4;
cout << a % b << endl;
前后置运算符
++前置递增 先让变量加1 然后进行表达式运算
后置递增++ 先进行表达式运算 后让变量加1
//前置递增 先让变量加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 << endl;
cout << b3 << endl;
赋值运算符
=、+=、 -=、 *=
//赋值运算符 =
int a = 10;
a = 100;
cout << a << endl; //输出100
// += -= *=
int a1 = 5;
int b = 3;
int c = 5;
a1 += 2; //输出7
b -= 4; //输出-1
c *= 5; //输出25
比较运算符
== 、 !=、 < 、 >、 <= 、 >=
作用:用于表达式的比较,并返回一个真值或假值,即只返回1或0。
// 比较运算符 == != < > <= >=
int a = 10;
int b = 20;
cout << (a == b) << endl; //输出0
cout << (a != b) << endl; //输出1
逻辑运算符
与&& 或|| 非!
作用:用于根据表达式的值返回真值或假值。
//逻辑运算符 非! 与&& 或||
int a = 1;
int b = 0;
cout << !a << endl; //0
cout << (a && b) << endl; //0
cout << (a || b) << endl; //1
if语句
1、单行if
//选择结构 单行if语句
int score = 0;
cout << "请输入您的分数:" << endl;
cin >> score;
cout << "您输入的分数为:" << score << endl;
if (score > 600) { //if条件后面不要加分号
cout << "恭喜你考入XXX大学!" << endl;
}
2、多行if
//选择结构-多行if语句
int score = 0;
cout << "请输入您的分数:" << endl;
cin >> score;
cout << "您输入的分数为:" << score << endl;
if (score > 600) { //if条件后面不要加分号
cout << "恭喜您考入广工大!" << endl;
}
else{
cout << "很遗憾,未考入广工大!" << endl;
}
3、多条件if
if后面要加条件,多条件时,使用else if,else if后面也需要加条件语句, 最后else结尾不需要加条件语句。
int score = 0;
cout << "请输入您的分数:" << endl;
cin >> score;
cout << "您输入的分数为:" << score << endl;
if (score > 600){
cout << "恭喜您考入一本大学" << endl;
}
else if(score > 500){
cout << "恭喜您考上二本大学" << endl;
}
else if (score > 400){
cout << "恭喜您考上三本大学" << endl;
}
else{
cout << "很遗憾,未考上大学" << endl;
}
4、嵌套if语句
int score = 0;
cout << "请输入您的分数:" << endl;
cin >> score;
cout << "您输入的分数为:" << score << endl;
if (score > 600) //if条件后面不要加分号
{
cout << "恭喜您考入一本大学" << endl;
if (score > 700){
cout << "考入北大!" << endl;
}
else if (score > 650){
cout << "考入清华!" << endl;
}
else{
cout << "考入人大!" << endl;
}
}
else if (score > 500){
cout << "恭喜您考上二本大学" << endl;
}
else if (score > 400){
cout << "恭喜您考上三本大学" << endl;
}
else{
cout << "很遗憾,未考上大学" << endl;
}
5、案例:三只小猪称体重
有三只小猪ABC,请分别输入三只小猪的体重,并且判断哪只小猪最重?
思路:先判断其中两个谁大,若第一个大,再与剩下一个做比较;反之,第二个大,也与剩下一个做比较。
int a = 0, b = 0, c = 0;
int t = 0;
cout << "请分别输入三只小猪的体重:" << endl;
cin >> a;
cin >> b;
cin >> c;
cout << "a小猪的体重是:" << a << endl;
cout << "b小猪的体重是:" << b << endl;
cout << "c小猪的体重是:" << c << endl;
if (a > b){
if (a > c){
cout << "a小猪的体重是最大的!" << endl;
}
else{
cout << "c小猪的体重是最大的!" << endl;
}
}
else{
if (b > c){
cout << "b小猪的体重是最大的!" << endl;
}
else{
cout << "c小猪的体重是最大的!" << endl;
}
}
三目运算符
语法:表达式1 ? 表达式2 :表达式3
如果表达式1的值为真,执行表达式2,并返回表达式2的结果;
如果表达式1的值为假,执行表达式3,并返回表达式3的结果。
//三目运算符
int a = 10;
int b = 21;
int c = 0;
//a > b ? c = a : c = b;
c = (a > b ? a : b); //如果a>b则返回a变量否则返回b变量
cout << c << endl; //输出为21
//在C++中三目运算符返回的是变量,可以继续赋值
(a > b ? a : b) = 100;
cout << "a= " << a << endl; //a=10
cout << "b= " << b << endl; //b=100
switch语句
if和swich的区别:swich缺点,判断时候只能是整型或者字符型,不可以是一个区间。swich优点,结构清晰,效率高
cout << "请给歌曲进行打分" << endl;
int score = 0;
cin >> score;
cout << "您输入的分数是:" << score << "分" << endl;
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;
}
while循环语句
作用:满足循环条件,执行循环语句
语法: while(循环条件){ 循环语句 }
解释:只要循环条件的结果为真,就执行循环语句
//while循环 在屏幕中打印0~9着10个数字
int num = 0;
while (num < 10)
{
cout << num << endl;
num += 1; //num++;
}
案例:1、猜数字
系统随机生成一个1到100之间的数字,玩家进行猜测,如果猜错,提示玩家数字过大或过小,如果猜对恭喜玩家胜利,并且退出游戏。
srand((unsigned int)time(NULL));
int num = rand() % 100 + 1; //生成0~99 + 1的随机数
cout << "请输入一个数字:" << endl;
int guess = 0;
while (1){
cin >> guess;
if (guess < num){
cout << "提示:您输入的数字小了" << endl;
}
else if(guess > num){
cout << "提示:您输入的数字大了" << endl;
}
else{
cout << "恭喜您,猜对啦!" << endl;
break; //利用该关键字来退出当前循环
}
}
srand函数是随机数发生器的初始化函数,time函数来获得系统时间。
time函数的参数为time_t型t变量,可直接传入一个空指针,即: srand((unsigned) time(NULL)); 因为你的程序中往往并不需要经过参数获得的数据。
do-while循环语句
do-while循环语句,始终会先执行一次循环语句
int num = 0;
do{
cout << num << endl;
num++;
}
while (num < 10); //while后有逗号
}
案例:1、水仙花数
水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身,例如:1^3 + 5^3+ 3^3 = 153。
请利用do…while语句,求出所有3位数中的水仙花数。
int num = 100;
int num1 = 0;
int num2 = 0;
int num3 = 0;
do{
num1 = num / 100; //获取百位
num2 = (num % 100) / 10; //获取十位
num3 = num % 10; //获取个位
if ((num1*num1*num1 + num2 * num2 * num2 + num3 * num3 * num3) == num){
cout << num << "是水仙花数" << endl;
}
num++;
} while (num < 1000);
for循环语句
// for循环 从数字0打印到数字9
int i = 0;
for (int i = 0; i < 10; i++)
{
cout << i << endl;
}
案例:1、敲桌子
从1开始数到数字100, 如果数字个位含有7,或者数字十位含有7,或者该数字是7的倍数,我们打印敲桌子,其余数字直接打印输出。
//敲桌子
for (int i = 1; i <= 100; i++){
if ((i / 10) == 7 || i % 10 == 7 || (i % 7) == 0){
cout << "敲桌子" << endl;
}
else{
cout << i << endl;
}
}
循环嵌套
//输出*号方阵
for (int i = 0; i < 10; i++)
{
for (int j = 0; j < 10; j++){
cout << "* ";
}
cout << endl;
}
案例:1、乘法口诀表
//乘法口诀表
for (int i = 1; i <= 9; i++) //代表行数
{
for (int j = 1; j <= i; j++) //代表列数{
cout << j << "*" << i << "=" << j*i << " ";
}
cout << endl;
}
按行号进行依次输出
break语句
作用: 用于跳出选择结构或者循环结构
break使用的时机:
(1) 在switch条件语句中,作用是终止case并跳出switch
(2) 在循环语句中,作用是跳出当前的循环语句
(3 )在嵌套循环中,跳出最近的内层循环语句
//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;
case 2:
cout << "您选择的是中等难度" << endl;
break;
case 3:
cout << "您选择的是困难难度" << endl;
break;
default:
cout << "输入错误!请重新输入" << endl;
break;
}
//2、出现在循环语句
for (int i = 0; i < 10; i++){
//如果i等于5,退出循环,不再打印
if (i == 5){
break; //输出为0、1、2、3、4
}
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;
}
continue语句
在循环语句中,跳过本次循环中余下尚未执行的语句,继续执行下一次循环。
//continue不会使得整个循环终止,而break会跳出循环
for (int i = 0; i <= 100; i++)
{
if (i % 2 == 0) //奇数输出,偶数不输出
{
continue;
}
cout << i << endl;
}
goto语句
可以无条件跳转语句,解释:如果标记的名称存在,执行到goto语句时,会跳转到标记的位置
语法: goto 标记;
// goto语句
cout << "1、xxxxx" << endl;
cout << "2、xxxxx" << endl;
goto FLAG; //直接跳转到标志处 输出5、xxxxxx
cout << "3、xxxxx" << endl;
cout << "4、xxxxx" << endl;
FLAG:
cout << "5、xxxxx" << endl;
注:以上基于黑马程序员C++课程的自用笔记,谢谢!