我报名参加金石计划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++的蒟蒻,关注我,我们一起加油。