c++运算符

78 阅读1分钟

运算符

作用:用于指行代码的运算

c++中运算符主要分为:算术运算符,赋值运算符,比较运算符,逻辑运算符

算术运算符

+,-,*,%,/,前置递增,后置递增,后置递进,前置递减

#include<iostream>
using namespace std;
int main()
{
	int num1 = 10, num2 = 3;
	cout << num1 - num2 << endl;//7
	cout << num1 + num2 << endl;//13
	cout << num1 % num2 << endl;//1
	cout << num1 * num2 << endl;//30
	cout << num1 / num2 << endl;//3,两个整型相除,得到的也还是整数。
	//注意:除数不能为0,会报错
	int num3 = 30;
	float num4 = 1.5f;
	cout << num3 - num4 << endl;//28.5
	cout << num3 + num4 << endl;//31.5
	//cout << num3 % num4 << endl;//注意取余不能跟小数在一起,只能跟整数和整数
	cout << num3 * num4 << endl;//45

	double num5 = 9.5;
	float num6 = 4.5;
	cout << num5 - num6 << endl;//5
	cout << num5 + num6 << endl;//14
	//cout << num5 % num6 << endl;//小数之间不能取余
	cout << num5 * num6 << endl;//42.75
	cout << num5 / num6 << endl;//,2.111111,循环小数,因为c++只能取六位,所以是2.111111。

	//前置加加和后置加加
	int num9 = 9;
	cout << ++num9 << endl;//会立即加一
	cout << num9++ << endl;//等于9,,后置会先进行表达运算,后进行加1操作
	//前置减减和后置减减
	int num10 = 5;
	cout << --num10 << endl;//会立即加一
	cout << num10-- << endl;//等于9,因为,后置会先进行表达运算,后进行加1操作

	system("pause");
	return 0;
}

赋值运算符

=,+=,-=,*=,/=,/=,%=

一个列子你就可以明白

比如:
int a = 10;
a += 5; //15
这段表达式的意思相当于:
a = 5 + a;a原来是10,又因为加了5,所以就是15;其他和加等(+=)一个意思

比较运算符

作用:相当于数学中比较两个值的大小,在c++中比较完之后会返回0或1

比较运算符有如下几类

==相等,!=不等,<小于,>大于,<=小于等于,>=大于等于,c++中没有===(全等符号)

列如:
int num = 10;
int num1 = 20;
cout<<(num9 == num10)<<endl;//0,承接上文,C++中表示真假值,除0之外都是真值
//注意:记得用()包裹起来

逻辑运算符

!取反符号,&&与,||或

!a:若a为真,则!a为假,列如:

int a = 1;
cout<<!a<<endl;//为假(0)

&&与

它必须要两个表达式或者两个表达式以上进行连接,如果全部都满足为真,这会返回真,如果,有一个假,那么返回的会是一个假值。

int a=10,b=5,c=0;
cout<<(a<=10 && b< a && c==0);//它会返回一个真值(1),因为上述条件都满足。
cout<<(a>5&&c)//它会返回一个假值(0),因为c是0,它表示假。

||或

它必须要两个表达式或者两个表达式以上进行连接,如果它全部都是假,那么会返回假值,如果有一个为真,那么会返回一个真值。

int a=10,b=5,c=0;
cout<<(a<=10 || b>a || c==0);//只要有一个表达式为真,它就会返回一个真值。
cout<<(a<5||c)//只有全部都为假,它才会返回假值

程序流程结构

在c++中,支持最基本的三种程序运行结构:顺序结构,选择结构,循环结构。

三者的运行思路:

顺序结构:按照代码从上到下执行,按照顺序执行,不发生跳转。

选择结构:按照条件选择分支运行。

循环结构:根据条件,进行多次执行某一块代码

选择结构-if分支

1.单分支if

if表示如果,如果为真,就会执行if包裹的代码,一个简单的单分支if判断

int main()
{
	int score;
	cout << "请输入你要查询的分数" << endl;
	cin >> score;
	if (score >= 60)
	{
		cout << "恭喜你的成绩合格了" << endl;
	}
	if (score < 60)
	{
		cout << "你的成绩不合格了,小伙子,等着重修吧" << endl;
	}
	system("pause");
	return 0;
}

2.多行if分支

if(条件){当条件满足时才会执行这段代码块}else{当条件不满足时,才会执行,相当于一个兜底操作}

#include<iostream>
using namespace std;
int main()
{
	int score;
	cout << "请输入你要查询的分数" << endl;
	cin >> score;
	if (score >= 60)
	{
		cout << "恭喜你的成绩合格了" << endl;
	}else 
	{
		cout << "你的成绩不合格了,小伙子,等着重修吧" << endl;
	}
	system("pause");
	return 0;
}

3.多条件if语句

if(条件1){当条件1满足时才会执行这段代码块}else if(条件2){当条件2满足时才会执行这段代码块}........ else{当条件都不满足时,才会执行,相当于一个兜底操作}

三目运算符

三目运算符相当于if...else

语法:表达式1?表达式2:表达式3,

当运行为真时,执行表达式2,当表达式为假执行表达式3

int a = 10;
cout<<(a<=8?"大于":"不大于");//不大于

switch语句

作用:执行多条件分支语句。

语法:

switch(表达式)
{
	case 结果1:执行语句;break;
	case 结果2:执行语句;break;
	case 结果3:执行语句;break;
	default:执行语句;break;//兜底操作
}

switch优缺点:

switch缺点:判断时候只能是整型或者字符串,不可以是一个区间。

switch优点,结构清晰,执行效率高

循环结构

while循环语句

作用:满足循环条件,执行循环语句。

语法:while(循环条件){循环语句}

解释:只要循环条件为真,就执行循环语句。

do.....while语句

作用:满足循环条件,执行循环语句,但要注意,它第一次循环是不管条件是否满足,都会执行。

语法:

do{循环语句} while(循环条件);

水仙花数案例:

#include<iostream>
using namespace std;
int main()
{
	int num = 100;
	do {
		int 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循环语句

作用:满足循环条件,执行循环语句

语法:for(起始表达式;条件表达式;末尾语句;){循环语句};

敲桌子案例:

#include<iostream>
using namespace std;
int main()
{
	for (int i = 0; i <= 100; i++)
	{
		if (i % 10 == 7) {
			cout << "敲桌子" << endl;
			continue;
		}
		else if(i /10 ==7)
		{
			cout << "敲桌子" << endl;
			continue;
		}
		else if (i%7== 0) 
		{
			cout << "敲桌子" << endl;
			continue;
		}
		cout << i << endl;
	}
	system("pause");
	return 0;
}