选择结构与运算符

选择结构

我们之前所学的所有东西,编写出来的程序结果都是固定的

现在我们试想我们需要编写一个程序,输入一个数字,让你判断这个数字是偶数还是奇数

此时对于不同的输入,我们的程序需要得到不同的结果,所以需要用到本文所介绍的语法:

选择语句

选择语句的语法大致是这样的:

if(一个bool值)
{
	bool值为true时要执行的内容	
} 
else
{
	bool值为false时要执行的内容 
}

比如上述的判断一个数字的奇偶,我们可以这么写:

int x;
cin>>x;
if(x%2) 
{
	cout<<"奇数";
}
else
{
	cout<<"偶数";
}

我们之前讲过,bool类型会把所有非0的数认为是\(true\),把0认为是\(false\)

又因为x%2即x的余数,所以当x%2为1的时候说明x整除2有余数,说明他是奇数

x%2得到0时,0会被认为\(false\),所以在else里面我们输出偶数

此外,else语句不是必须加的,如果bool值为\(false\)时不进行任何操作可以只写if部分


运算符

在前面我们已经讲了算术运算符和赋值运算符,在这里,我们讲解得到的结果会是bool值的

关系运算符和逻辑运算符

关系运算符

1.>

即判断左边的操作数是否大于右边的操作数,如果左边的操作数大于右边的操作数,结果为\(true\),反之结果为\(false\)
例如

if(5>4)
{
	cout<<"YES!";
}

会成功的输出YES,因为5大于4,结果为\(true\),会运行if里面的内容

如果代码为

if(4>5)
{
	cout<<"YES!";
}

则这份代码不会有任何的输出,因为4不大于5,结果为\(false\),我们也没有写else部分,代码不会进行任何操作

2.<

与>号类似,即判断左边的操作数是否小于右边的操作数,如果左边的操作数小于右边的操作数,结果为\(true\),反之结果为\(false\)

3.>=

即判断左边的操作数是否大于等于右边的操作数,如果左边的操作数大于等于右边的操作数,结果为\(true\),反之结果为\(false\)

4.<=

与>=号类似,即判断左边的操作数是否小于等于右边的操作数,如果左边的操作数小于等于右边的操作数,结果为\(true\),反之结果为\(false\)

5.==

即判断左边的操作数是否等于右边的操作数,如果左边的操作数等于右边的操作数,结果为\(true\),反之结果为\(false\)

6.!=

即判断左边的数是否不等于右边的操作数,如果左边的操作数不等于右边的操作数,结果为\(true\),反之结果为\(false\)

一个小坑

最后,有个值得注意的点,由于关系运算符得到的结果会是一个bool值,所以我们如果将关系运算符连写可能并不能得到我们想要的结果

例如:

int x;
cin>>x;
if(2<x<7)
{
	cout<<"YES!";
}

对于上述代码,我们会发现不管我们x为多少都会输出YES!,而不是只有x在2和7之间时输出,为什么呢?

因为刚开始我们会判断2<x,得到一个bool值,如果x大于2就是1,x小于等于2就是0

但不管得到什么,1或者0,小于7肯定恒成立,所以最后总会输出YES

逻辑运算符

1.&&

逻辑运算符的两边的操作数都是bool类型的,&&我们一般称呼为与

意思是当左右两个操作数的值都为\(true\)是得到\(true\),其余任何情况都得到\(false\)

例如上文我们想让输入的数在2到7之间输出YES就可以用与,例如:

int x;
cin>>x;
if(x>2 && x<7)
{
	cout<<"YES!";
}

此时&&保证了只有两边都成立的时候才会返回\(true\),就达到了我们的本意

2.||

||运算我们一般称为或

意思是当左右两个操作数有一个是\(true\)就得到\(true\),只有左右都是\(false\)的情况才会返回\(false\)

3.!

!运算我们一般称呼为非

!运算不同于上面两个,只涉及到一个bool类型的操作数,即当操作数为\(true\)时得到\(false\),操作数为\(false\)时得到\(true\)

运算符的优先级

最后,我们整理一下目前为止所讲到的所有运算符的优先顺序:

算术运算符>关系运算符>逻辑运算符>赋值运算符

并且,在算术运算符中:
*/%>+-

在逻辑运算符中:
!>&&>||

posted @ 2026-10-10 17:12  罗小菜  阅读(4)  评论(0)    收藏  举报