运算符
作用:用于执行代码的运算
1算术运算符
作用:用于处理四则运算
下面我们用代码展示:
#include<iostream>
using namespace std;
int main()
{
//加减乘除
int a1 = 10;
int b1 = 3;
cout <<" a1 + b1 =="<< a1 + b1 << endl;
cout << " a1 - b1 ==" << a1 - b1 << endl;
cout << " a1 * b1 ==" << a1 * b1 << endl;
cout << " a1 / b1 ==" << a1 / b1 << endl;
//除法运算有几个要注意的点
//1,两个数相除,除数不可以为0
//a1 = 10;
//b1 = 0;
//cout << a1 / b1 << endl;
//两个小数可以相除
double d1 = 0.5;
double d2 = 0.25;
cout << " d1 / d1 ==" << d1 / d2 << endl;
//两个小数可以相除
d1 = 0.5;
d2 = 0.22;
cout << " d1 / d1 ==" << d1 / d2 << endl;//运算结果可以是小数;
//取模的本质 就是求余数
int a2 = 10;
int b2 = 3;
cout << " a2 % b2 ==" << a2 % b2 << endl;
//取模运算两个数相除不能为0;
//两个小数也不能做取模运算
d1 = 0.5;
d2 = 0.25;
//cout << " d1 % d1 ==" << d1 % d2 << endl;//报错了
//递增:
//后置递增
int a = 10;
a++;//相当于a=a+1
cout << a << endl;
//前置递增
int b = 10;
++b;//相当于a=b+1
cout << b << endl;
//区别:
//前置递增先对变量进行++,再进行表达式
int a4 = 10;
int b4 = ++a4 * 10;
cout << b4 << endl;
//后置递增先再进行表达式,后对变量进行++,
int a3 = 10;
int b3 = a3++ * 10;
cout << b3 << endl;
system("pause");
return 0;
}
2赋值运算符
int main()
{
//赋值运算符
//=
int a = 10;
a = 100;
cout << "a = " << a << endl;
//+=
a = 10;
a += 2;
cout << "a = " << a << endl;
//-=
a = 10;
a -= 2;
cout << "a = " << a << endl;
//*=
a = 10;
a *= 2;
cout << "a = " << a << endl;
// /=
a = 10;
a /= 2;
cout << "a = " << a << endl;
//%
a = 10;
a %= 2;
cout << "a = " << a << endl;
system("pause");
return 0;
}
3比较运算符
int main()
{
//比较运算符
int a = 10;
int b = 20;
//==
cout << (a == b) << endl;//0
//!=
cout << (a != b) << endl;//1
//>
cout << (a > b) << endl;//0
//<
cout << (a < b) << endl;//1
//>=
cout << (a >= b) << endl;//0
//<=
cout << (a <= b) << endl;//1
system("pause");
return 0;
}
4 逻辑运算符
4.1 逻辑非 !
int main()
{
int a = 10;
//在C++中,除了0都为真
cout << !a << endl;//0
cout << !!a << endl;//1
system("pause");
return 0;
}
4.2逻辑与 &&
同真为真,一假则假
int main()
{
int a = 10;
int b = 20;
cout << (a&&b)<< endl;//1
a = 0;
b = 10;
cout << (a && b) << endl;//0
a = 10;
b = 0;
cout << (a && b) << endl;//0
a = 0;
b = 0;
cout << (a && b) << endl;//0
system("pause");
return 0;
}
4.3逻辑或 ||
同假为假,一真为真
int main()
{
int a = 10;
int b = 20;
cout << (a || b) << endl;//1
a = 0;
b = 10;
cout << (a || b) << endl;//1
a = 10;
b = 0;
cout << (a || b) << endl;//1
a = 0;
b = 0;
cout << (a || b) << endl;//0
system("pause");
return 0;
}
程序流程结构
c/c++支持最基本的三种执行结构:顺序结构,选择结构,循环结构
顺序结构:程序按顺序执行,不发生跳转
选择结构:依据条件是否满足,有选择的执行相应功能
循环结构:依据条件是否满足,循环多次执行某段代码
1 选择结构
1.1 if语句
作用:执行满足条件的语句
if语句的三种形式:
1.1.1单行格式if语句
#include<iostream>
using namespace std;
int main()
{
//用户输入分数,如果分数大于600,视为考上一本大学,在屏幕上输出
//1,用户输入分数
int score = 0;
cout << "请输入您的分数" << endl;
cin >> score;
//2,打印用户输入的分数
cout << "您输入的分数为:" << score << endl;
//3,判断分数是否大于600,如果大于,就输出
//注意:if条件后面呢不要加分号
if (score > 600)
{
cout << "恭喜您考上一本大学" << endl;
}
system("pause");
return 0;
}
1.1.2多行格式if语句
int main()
{
//用户输入分数,如果分数大于600,视为考上一本大学,在屏幕上输出
// 如果没考上一本,打印未考上一本
//1,用户输入分数
int score = 0;
cout << "请输入您的分数" << endl;
cin >> score;
//2,打印用户输入的分数
cout << "您输入的分数为:" << score << endl;
//3,判断分数是否大于600,如果大于,就输出
//注意:if条件后面呢不要加分号
if (score > 600)
{
cout << "恭喜您考上一本大学" << endl;
}
else
{
cout << "很遗憾,您未考上一本大学" << endl;
}
system("pause");
return 0;
}
1.1.3多条件的if语句
int main()
{
//多条件的if语句
//用户输入分数,如果分数大于600视为考上一本,大于500考上二本,大于400考上三本,其余视为未考上本科
//1,用户输入分数
int score = 0;
cout << "请输入您的分数" << endl;
cin >> score;
//2,打印用户输入的分数
cout << "您输入的分数为:" << score << endl;
//3,判断
if (score > 600)
{
cout << "恭喜您考上一本大学" << endl;
}
else if(score>500)
{
cout<< "恭喜您考上二本大学" << endl;
}
else if(score>400)
{
cout << "恭喜您考上三本大学" << endl;
}
else
{
cout << "很遗憾,您未考上一本大学" << endl;
}
system("pause");
return 0;
}
1.1.4 if嵌套使用
int main()
{
//多条件的if的嵌套语句
//用户输入分数,如果分数大于600视为考上一本,大于500考上二本,大于400考上三本
// 其余视为未考上本科
// 一本分数中,大于600视为考上人大,大于650视为考上复旦,大于700视为考上清北
//1,用户输入分数
int score = 0;
cout << "请输入您的分数" << endl;
cin >> score;
//2,打印用户输入的分数
cout << "您输入的分数为:" << score << endl;
//3,判断
if (score > 600)
{
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;
}
system("pause");
return 0;
}
1.1.5 案例举例
判断三只小猪,哪个体重最重
//三只小猪,判断那只小猪最重
int main()
{
//1,创建三只小猪的体重变量
int a = 0;
int b = 0;
int c = 0;
//2,让用户输入三只小猪的重量
cout << "请输入小猪A的体重:" << endl;
cin >> a;
cout << "请输入小猪B的体重:" << endl;
cin >> b;
cout << "请输入小猪C的体重:" << endl;
cin >> c;
//3,判断哪只最重
if (a > b)//A比B重
{
if (a > c)//A比C重
{
cout << "小猪A最重" << endl;
}
else//C比A重
{
cout << "小猪C最重" << endl;
}
}
if (b > a)//B比A重
{
if (b > c)//B比C重
{
cout << "小猪B最重" << endl;
}
else//C比B重
{
cout << "小猪C最重" << endl;
}
}
system("pause");
return 0;
}
1.2三目运算符
作用:通过三目运算符实现简单的判断
语法:表达式1?表达式2:表达式3
解释:
如果表达式1的值为真,执行表达式2,并返回表达式2的结果
如果表达式1的值为假,执行表达式3,并返回表达式3的结果
示例:
int main()
{
//三目运算符
int a = 10;
int b = 20;
int c = 0;
//创建3个变量 a b c
//将a和b 作比较,将变量大的值赋给变量c
c = (a > b ? a : b);
cout << "c = " << c << endl;
cout <<endl;
//在c++中三目操作符返回的是变量,可以继续赋值
(a > b ? a : b) = 100;
cout << "a = " << a << endl;
cout << "b = " << b << endl;
cout << "c= " << c << endl;
cout << endl;
(a < b ? a : b) = 100;
cout << "a = " << a << endl;
cout << "b = " << b << endl;
cout << "c= " << c << endl;
system("pause");
return 0;
}
1.3switch语句
作用:执行多条件语句
语法:
int main()
{
switch (表达式)
{
case 结果1:
执行语句;
break;
case 结果1:
执行语句;
break;
...
default:
执行语句;
break;
}
system("pause");
return 0;
}
示例:
int main()
{
//给电影打分
//10~9 经典
//8~7 非常好
//6~5 一般
//5以下 烂片
//1,提示用户输入给电影的评分:
cout << "请给电影进行打分" << endl;
//2,用户开始打分
int score = 0;
cin >> score;
cout << "您打的分数是:" << score;
//根据用户输入的分数来提示用户最后的结果
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;
}
system("pause");
return 0;
}
注意1:switch语句中表达式类型只能是整型或者字符型
注意2:case里如果没有break,那么程序会一直向下执行
总结:与if语句相比,对于多条件判断时,switch的结构清晰,执行效率高,缺点是switch不可以判断区间
2,循环结构
2.1 while循环语句
作用:满足循环条件,执行循环语句
语法:while{循环条件}{循环语句}
解释:只要循环条件的结构为真,就执行循环语句
int main()
{
int num = 1;
//打印1~9
//while( )中填入循环条件
//注意事项:在写循环一定要避免死循环的出现
while (num < 10)
{
cout << num << endl;
num++;
}
system("pause");
return 0;
}
while循环语句的案例:随机数游戏
int main()
{
//添加随机数种子 作为利用当前系统时间生成随机数,防止每次随机数都一样
srand((unsigned int)time(NULL));
//1,系统生成随机数
int num = rand() % 100 + 1; //生成0+1 ~ 99+1 的随机数
//cout << num << endl;
while (1)
{
//2,玩家进行猜测
int val = 0;
cin >> val;
//3,判断玩家的猜测
if (val > num)
{
cout << "猜测过大" << endl;
}
else if (val < num)
{
cout << "猜测过小" << endl;
}
else
{
cout << "恭喜你,猜对了" << endl;
break;// 猜对,退出游戏
}
}
//猜对,退出游戏
//猜错,提示猜的结果,过大或者过小 重新返回第二步
system("pause");
return 0;
}
2.2 do...while 循环语句
作用:满足循环条件,执行循环语句
注意:与while的区别在于do...while会先执行一次循环语句,再判断循环条件
int main()
{
int num = 0;
do
{
cout << num << endl;
num++;
} while (num < 10);
system("pause");
return 0;
}
案例展示:寻找水仙花数
int main()
{
int num = 100;//1,将所有的三位数输出
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;
}
2.3 for循环语句
作用:满足循环条件,执行循环语句
示例:
int main()
{
for (int i = 0; i < 10; i++)
{
cout << i << endl;
}
system("pause");
return 0;
}
练习案例:敲桌子
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;
}
2.2.4嵌套循环
作用:在循环体中再嵌套一层循环,解决一些实际问题
int main()
{
//利用嵌套循环实现星图
//打印一行星图
//外层嵌套一行,内层嵌套一周
//外层循环
for (int i = 0; i < 10; i++)
{
//内层循环
for (int j = 0; j < 10; j++)
{
cout << "* ";
}
cout << endl;
}
system("pause");
return 0;
}
案例举例:九九乘法表
int main()
{
//乘法口诀表
//打印行数
for (int i = 0; i <= 9; i++)
{
//cout << i << endl;
for (int j = 0; j <= i; j++)
{
cout << j << "*" << i << " = " << i * j<<" ";
}
cout << endl;
}
}
3,跳转语句
3.1 break语句
作用:用于跳出选择结构或者循环结构
break使用的时机:
出现在switch条件语句中,作用是终止case并跳出循环
出现在循环语句中,作用是跳出当前的循环语句
出现在嵌套语句,作用是跳出最近的内层循环语句
示例一:
int main()
{
//1,在switch语句中使用break
cout << "请选择您选择的挑战难度" << endl;
cout << "1,普通" << endl;
cout << "2,中等" << endl;
cout << "3,困难" << endl;
cout << "请选择"<<endl;
int num = 0;
cin >> num;
switch (num)
{
case 1:
cout << "您选择的难度是普通级别" << endl;
break;
case 2:
cout << "您选择的难度是中等级别" << endl;
break;
case 3:
cout << "您选择的难度是苦难级别" << endl;
break;
default:
break;
}
system("pause");
return 0;
}
示例二:
int main()
{
//2,在循环中跳出循环
for (int i = 0; i <= 10; i++)
{
if (i == 5)
{
break;
}
cout << i << endl;
}
system("pause");
return 0;
}
示例三:
int main()
{
//在嵌套循环语句中使用break,退出内层循环
for (int i = 0; i < 10; i++)
{
for (int j = 0; j < 10; j++)
{
cout << "* ";
}
cout << endl;
}
system("pause");
return 0;
}
int main()
{
//在嵌套循环语句中使用break,退出内层循环
for (int i = 0; i < 10; i++)
{
for (int j = 0; j < 10; j++)
{
cout << "* ";
if (j == 5)
{
break;
}
}
if (i == 5)
{
break;
}
cout << endl;
}
cout << endl;
system("pause");
return 0;
}
3.2 continue语句
作用:跳出当前循环,进入下一步循环
仅用于:while,do-while,for语句
示例一:
int main()
{
//2,在循环中跳出循环
for (int i = 0; i <= 10; i++)
{
if (i == 5)
{
continue;
}
cout << i << endl;
}
system("pause");
return 0;
}
3.3 goto语句
作用:可以无条件跳转语句
语法: goto标记
解释:如果标记的名称存在,执行到goto语句时,会跳转到标记的位置
int main()
{
cout << "1" << endl;
goto FLAG;
cout << "2" << endl;
cout << "3" << endl;
cout << "4" << endl;
FLAG:
cout << "5" << endl;
system("pause");
return 0;
}
注意:在程序中不建议使用goto语句,以免造成程序流程混乱