在 C++ 中程序也可以进行判断, 比如判断 N / 2 是否等于 5.

又比如判断输入的是否是 123.

好了, 我们的判断语句怎么写呢, 让我们看一看~

1.if语句

1.1.if语句的基本结构

if(表达式)
{
    代码;
}

if 语句的括号中应写一个表达式, 其值应为 true 或 false.

如果满足表达式的条件(值为 true), 就执行 if 语句中的代码再执行 if 语句后的代码, 否则直接执行 if 语句后的代码.

1.2.代码片段

比如...这段代码

if(N == 2)
{
    cout << "N = 2";
}

这段代码的意思是如果变量 N 等于 2 就输出 "N = 2".

[注意: 在 if 语句的表达式中也可以执行代码, 因为写一个等于号会让 C++ 以为你要把 N 赋值为 2 导致计算错误, 所以 C++ 规定写两个等于号表示为查看 N 是否等于 2].

1.3.示例讲解

1.3.1.题目描述

工厂在检查螺丝的松动程度, 如果螺丝的松动的角度 \geqslant 50 就表示这个螺丝松动较为严重需要维修请计算输入的螺丝是否需要维修.

1.3.2.输入格式

输入一个正整数 M , 表示螺丝松动的角度, 角度可能为小数.

1.3.3.输出格式

如果该螺丝需要维修, 则输出 True, 否则输出不输出.

1.3.4.代码
#include <bits/stdc++.h> // 这行是头文件
using namespace std; // 这行是命名空间
int main() // 这行是函数名C++的主函数 main函数
{
	double M; // 这行声明了双精度型变量 M
	cin >> M; // 这行可以在控制台输入双精度型变量 M
	if(M >= 50) // 如果 M ≥50 
	{
		cout << "True"; // 这行在控制台输出 "True" 
	}
	return 0; // 这行是返回值
}

我们可以发现当我们输入一个小于50的数, 它就什么都不输出.

如果输入一个大于等于50的数, 它就输出 True.

接下来是 else if 语句~

2.if - else语句

2.1.if - else语句的基本结构

if(表达式)
{
    代码;
}
else
{
    代码;
}

意思就是如果满足 if 语句括号中的表达式, 就执行 if 语句中的代码.

否则执行 else 语句中的代码.

最后执行 else 语句后的代码.

2.2.代码片段

比如...这段代码

if(N == 2)
{
    cout << "N = 2";
}
else
{
    cout << "N ≠ 2";
}

这段代码的意思是如果变量 N 等于 2 就输出 "N = 2".

否则输出 "N ≠ 2".

2.3.示例讲解

2.3.1.题目描述

这天, 小明想知道两个数 A, B 是否都 \geqslant 10, A 和 B 可能为小数.

2.3.2.输入格式

输入两个正整数 A, B. 注意数据类型的选择.

2.3.3.输出格式

如果 A 和 B 都大于等于 10 就输出 True.

否则输出 False.

2.3.4.代码
#include <bits/stdc++.h> // 这行是头文件
using namespace std; // 这行是命名空间
int main() // 这行是函数名C++的主函数 main函数
{
	double A, B; // 这行声明了双精度型变量 A 和 B 
	cin >> A >> B; // 这行可以在控制台输入双精度型变量 A 和 B 
	if(A >= 10 && B >= 10) // 如果 A ≥10 且 B ≥10
	{
		cout << "True"; // 这行在控制台输出 "True" 
	}
	else // 否则 
	{
		cout << "False"; // 这行在控制台输出 "False"
	}
	return 0; // 这行是返回值
}

 我们可以发现如果 A 和 B 都大于等于 10 才能输出 True.

否则就输出 False.

2.4.逻辑运算符 &&, || 和 !

刚才代码里的逻辑运算符 && 就表示 逻辑运算符---且.

详细用法见 第4章 - 逻辑运算符.

2.5.判断表达式

刚才在第一段代码中看到一个符号 == 它是什么意思呢, 让我们来看看吧~

符号含义
==等于, 如 if(a == b)
!=不等于, 如 if(a != B)
>大于, 如 if(a > B)
>=大于等于, 如 if(a >= B)
<小于, 如 if(a < B)
<=小于等于, 如 if(a <= B)

3.if - else if - else语句

3.1.if - else if - else语句的基本结构

if(表达式)
{
    代码;
}
else if(表达式)
{
    代码;
}
else if(表达式)
{
    代码;
}
...
else
{
    代码;
}

意思就是如果满足 if 语句括号中的表达式, 就执行 if 语句中的代码.

如果满足 第一个 else if 语句中的表达式, 就执行 第一个 else if 语句中的代码.

如果满足 第二个 else if 语句中的表达式, 就执行 第二个 else if 语句中的代码.

......

如果都不满足就执行 else 语句中的代码.

最后执行 else 语句后的代码.

[注意: 在 if - else if - else 语句中最多可以写数百个 else if].

3.2.代码片段

if(score >= 90)
{
    cout << "A";
}
else if(score >= 75)
{
    cout << "B";
}
else if(score >= 60)
{
    cout << "C";
}
else
{
    cout << "D";
}

如果变量 score(分数) 大于等于 90, 就输出 A.

如果不满足, 且变量 score 大于等于 75, 就输出 B.

如果不满足, 且变量 score 大于等于 60, 就输出 C.

如果都不满足就输出 D.

3.3.示例讲解

3.3.1.题目描述

夏天到了, 各家各户的用电量都增加了许多, 相应的电费也交的更多了. 小玉家今天收到了一份电费通知单. 小玉看到上面写: 据闽价电 [2006]27 号规定, 月用电量在 150 千瓦时及以下部分按每千瓦时 0.4463 元执行, 月用电量在 151∼400 千瓦时的部分按每千瓦时 0.4663 元执行, 月用电量在 401 千瓦时及以上部分按每千瓦时 0.5663 元执行; 小玉想自己验证一下, 电费通知单上应交电费的数目到底是否正确呢. 请编写一个程序, 已知用电总计, 根据电价规定, 计算出应交的电费应该是多少.

3.3.2.输入格式

输入一个正整数, 表示用电总计 (单位以千瓦时计).

3.3.3.输出格式

输出一个数, 为需要的电费.

3.3.4.代码
#include <bits/stdc++.h> // 这行是头文件
using namespace std; // 这行是命名空间
int main() // 这行是函数名C++的主函数 main函数
{
	double power, money = 0; // 这行声明了双精度型变量 power 和 money, 并将变量 money 赋值为 0 
	cin >> power; // 这行可以在控制台输入双精度型变量 power 
	if(power <= 150) // 如果电量不超过 150 
	{
		money = power * 0.4463; // 就将 money 设为 电量 * 0.4463 
	}
	else if(power <= 400) // 如果电量不超过 400 且超过 150 
	{
		money = (power - 150) * 0.4663 + 150 * 0.4463; // 就将 money 设为 电量 * 0.4663 + 150 * 0.4463
	}
	else // 如果电量超过 400 
	{
		money = (power - 400) * 0.5663 + 150 * 0.4463 + 250 * 0.4663; // 就将 money 设为 电量 * 0.5663 + 150 * 0.4463 + 250 * 0.4663
	}
	cout << money; // 这行在控制台输出变量 money
	return 0; // 这行是返回值
}

 我们输入了 200, 因为 200 > 150 所以用公式

∵money = (200 - 150) * 0.4663 + 150 * 0.4463

∴money = 50 * 0.4663 + 150 * 0.4463

∴money = 23.315 + 66.945

∴money = 90.26

得出结果 90.26.

4. 逻辑运算符

符号含义
&&

if(a == 10 && b == 10) // 如果 a = 10 且 b = 10
||

if(a == 10 || b == 10) // 如果 a = 10 或 b = 10
!

if(a != 1) // 如果 a ≠ 10

&& - 且: 只有所有值都为 true 才返回 true. 否则返回 false.

代码结果
(false && false)false
(true && false)false
(false && true)false
(true && true)true

|| - 或: 只要任意一个值为 true 就返回 true. 否则返回 false.

代码结果
(false || false)false
(false || false)true
(false || false)true
(false || false)true

! - 非: 如果值为 true 返回 false, 如果值为 false 返回 true.

代码结果
(! true)false
(! false)true

优先级: 

! > && > ||

5.最后一题

你可以完成这道题吗?
洛谷 P1425icon-default.png?t=N7T8http://www.luogu.com.cn/problem/P1425这篇关于 if 语句的文章就结束了~

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐