C++基础(12)在 C/C++ 中同时执行 if 和 else 语句仅当布尔表达式为 false 时才会执行语句

469 阅读2分钟

我报名参加金石计划1期挑战——瓜分10万奖池,这是我的第12篇文章,点击查看活动详情

编写一个同时执行两个 if-else 块语句的 C/C++ 程序。

C/C++ 语言中 if-else 语句的语法为:

if (Boolean expression)
{
    // 仅当布尔表达式为真时才会执行语句
}
else
{
    // 仅当布尔表达式为 false 时才会执行语句
}

因此,我们可以得出结论,只有一个 if-else 语句块将根据布尔表达式的条件执行。 

但是我们可以更改我们的代码,以便 if 块和 else 块中的语句都针对相同的条件执行。

推荐:请先在{IDE} 上尝试您的方法,然后再继续解决。

诀窍是使用 goto 语句,它提供从“goto”到同一函数中的标记语句的无条件跳转。

下面是同时执行这两个语句的 C/C++ 程序:

C

#include <bits/stdc++.h>
using namespace std;
int main()
{
if (1) // 用0替换1,看看会发生什么神奇的事
{
	label_1: cout <<"Hello ";
	
	// 执行上述语句后跳转到else语句
	goto label_2;
}
else
{
	// 如果布尔条件变为假,则跳转到“if block statement”
	goto label_1;

	label_2: cout <<"Geeks";
}
return 0;
}

C++

#include <stdio.h>
int main()
{
if (1) //用0替换1,看看会发生什么神奇的事
{
	label_1: printf("Hello ");
	
	// 执行上述语句后跳转到else语句
	goto label_2;
}
else
{
	// 如果布尔条件变为假,则跳转到“if block statement”
	goto label_1;

	label_2: printf("Geeks");
}
return 0;
}

输出:

Hello Geeks

因此 if 和 else 块的语句同时执行。另一个有趣的事实是,输出将始终保持不变,并且不取决于布尔条件是真还是假。

注意– 在任何编程语言中都强烈建议不要使用 goto 语句,因为它难以跟踪程序的控制流,使程序难以理解和修改。作为程序员,我们应该避免在 C/C++ 中使用 goto 语句。

如果大家在阅读我的文章的时候发现了一些错误,欢迎在评论区留言告诉我。我是一个正在学习C++的蒟蒻,关注我,我们一起加油。