c++if语句(else if)if嵌套语句

if 语句

if语句是一种基本的条件控制语句,它的语法基本跟自然语言中的英语一样(if something happens, do something)。if语句后面还可以选择的加上 else 语句(if something happen,do something ,else ,do other things)。
基本if语句

#include <iostream>
using namespace std;
//基本if语句

int main()
{
	int num = 5 ;
	if ( num > 4 )
		cout <<"数字大于4." << endl;
	num = 3 ;
	if ( num > 4 )
		cout << "数字大于4。" << endl;
	else
		cout << "数字小于等于4." << endl;
	return 0 ;
}

结果:
在这里插入图片描述
if关键字后面跟着用括号括住的表达式,下面跟着的一句会在条件满足的时候运行。
示例中 ,由于一开始时num= 5,因此满足条件num>4,会打印句子。我们也可以加上else关键字和一个语句,这样第二个语句将会在条件不满足的情况下运行。由于后来将num改为3,条件不满足,因此程序执行else后的句子,打印句子。
由于这样的句子只能在if或else后面添加一个语句,我们还是需要能处理多行语句的语法。
多行if语句

#include<iostream>
using namespace std;

//多行if语句

int main()
{
	int num = 5 ;
	int cnt = 0 ;
	if ( num > 4 )
	{
		cout << "数字大于4." << endl;
		cnt++;
	}
	num = 3 ;
	if (num > 4)
	{
		cout << "数字大于4。" << endl;
		cnt++;
	}
	else 
	{
		cout << "数字小于等于4." <<endl;
		cnt++;
	}
	
	cout << "cnt=" <<cnt <<endl;

	return 0;
}

运行结果:
在这里插入图片描述
例子展示了带有许多行语句的if语句用法,这与基本if语句的区别就在于他需要使用花括号{}把条件分支中的语句全都框起来。这是因为在没有花括号的情况下,if只能覆盖一个语句,而不能覆盖多行语句。

为了增强程序的可读性,我们一般会在不同的场合为语句添加缩进(一般只要看到左花括号就缩进,看到右花括号就减少缩进)。缩进在c++中只会被当做空格处理,并不会对语义造成任何影响。
else if 的应用:

#include <iostream>
using namespace std;

//else if 的应用

int main()
{
	int num = 5;
	if (num < 4)
	{
		cout << "数字小于4." <<endl;
	}
	else if ( num > 6)
	{
		cout << "数字大于6." << endl;
	}
	else 
	{
		cout << "数字在4和6之间。" <<endl;\
	}
	return 0;
}

运行结果:
在这里插入图片描述
示例中,我们通过在else后面在增加一个if…else语句的方法增加了一个条件分支,程序num>4不成立的情况下进入下一个条件的判断,直到所有条件都满足时,程序走进else分支。
上述语法适合同一个数值有多个区间的情形,但有的时候我们也会需要层层递进的条件分支,这个时候就可以在if语句中嵌套if语句。
示例:

#include<iostream>
using namespace std;
//嵌套if语句

int main()
{
	bool isNorth = true;
	bool isWest = false;
	if ( isNorth )
	{
		if (isWest)
		{
			cout <<"西北方向!" << endl;
		}
		else
		{
			cout << "东北方向!" << endl;
		}
	}
	else
	{
		if (isWest)
		{
			cout << "西南方向!" << endl;
		}
		else
		{
			cout << "东南方向!" << endl;
		}
	}
	return 0 ;
}

运算结果:
在这里插入图片描述
嵌套if语句的时候,我们可以随意组合之前提到过的任何语法,然而else if的语法本质上就是省略了else后面花括号中的嵌套if语句。
在使用嵌套if语句的时候我们也要注意花括号的添加,这不仅仅是因为多行语句的问题。

悬垂 else:

#include<iostream>
using namespace std;
//悬垂else

int main()
{
	int a = 4;
	if ( a > 3 )
		if ( a > 5 )
			cout <<"a大于5!" << endl;
	else
	cout << "a小于等于3!" <<endl;
	return 0;
}

运行结果:
在这里插入图片描述
示例中,我们可以看到a的值为4,但是程序的运行结果却是“a小于等于3”。这是因为没有加上适当的花括号,else无法判断自己与哪个if配对,编译器就只能选择最近的if语句进行打印,所以else相当于是挂在了a>5的条件之后,而不是a>3之后。这种情况再次说明了缩进在 c++中对编译毫无影响。

如果本文对你有帮助请点赞支持一下下~

  • 11
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C++中的if-else语句是一种条件判断语句,用于根据条件的真假来执行不同的代码块。if-else语句的基本语法如下: ``` if (condition){ // 如果条件为真,执行这里的代码块 } else{ // 如果条件为假,执行这里的代码块 } ``` 其中,condition是一个表达式,如果它的值为真,则执行if后面的代码块;否则执行else后面的代码块。在if-else语句中,else是可选的,如果没有else,则当条件为假时不执行任何代码。 在C++中,if-else语句还可以嵌套使用,例如: ``` if (condition1){ // 如果条件1为真,执行这里的代码块 } else if (condition2){ // 如果条件1为假,条件2为真,执行这里的代码块 } else{ // 如果条件1和条件2都为假,执行这里的代码块 } ``` 在这个例子中,如果条件1为真,则执行第一个代码块;如果条件1为假,条件2为真,则执行第二个代码块;否则执行第三个代码块。 除了if-else语句C++中还有另一种条件判断语句switch,它可以根据一个表达式的值来执行不同的代码块。switch语句的基本语法如下: ``` switch (expression){ case value1: // 如果expression的值等于value1,执行这里的代码块 break; case value2: // 如果expression的值等于value2,执行这里的代码块 break; // 其他case语句 default: // 如果expression的值不等于任何一个case语句中的值,执行这里的代码块 break; } ``` 在这个例子中,expression是一个表达式,它的值会被依次与每个case语句中的值进行比较,如果相等,则执行对应的代码块。如果expression的值不等于任何一个case语句中的值,则执行default后面的代码块。在每个case语句的代码块中,必须使用break语句来结束switch语句的执行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值