跳到主要内容

C++ goto语句

提示
  1. goto语句的作用:在C++编程中,goto语句用于改变程序的正常执行顺序,将控制权转移到程序的其他部分。
  2. 如何使用:当执行到goto label;时,程序的控制权跳转到标记为label:的位置,并执行其下的代码。
  3. 避免使用原因goto语句虽然提供了跳转程序任意部分的能力,但会使程序逻辑复杂和混乱,因此被认为是不良的编程实践。大多数情况下,可以用breakcontinue语句替代。

在 C++ 编程中,goto 语句用于通过将控制权转移到程序的其他部分来改变程序执行的正常顺序。

goto 语句的语法

goto label;
... .. ...
... .. ...
... .. ...
label:
statement;
... .. ...

在上述语法中,label 是一个标识符。当遇到 goto label; 时,程序的控制权跳转到 label: 并执行其下的代码。

C++ 编程中 goto 语句的工作原理

示例:goto 语句

// 这个程序计算用户输入的数字的平均值。
// 如果用户输入一个负数,它将忽略这个数字并
// 计算在它之前输入的数字的平均值。

# include <iostream>

using namespace std;

int main()
{
float num, average, sum = 0.0;
int i, n;

cout << "最大输入数量: ";
cin >> n;

for(i = 1; i <= n; ++i)
{
cout << "输入 n" << i << ": ";
cin >> num;

if(num < 0.0)
{
// 程序的控制权移动到 jump:
goto jump;
}
sum += num;
}

jump:
average = sum / (i - 1);
cout << "\n平均值 = " << average;
return 0;
}

输出

最大输入数量: 10
输入 n1: 2.3
输入 n2: 5.6
输入 n3: -5.6

平均值 = 3.95

您可以在不使用 goto 语句的情况下编写任何 C++ 程序,并且通常认为不使用它们是个好主意。

避免使用 goto 语句的原因

goto 语句赋予了跳转到程序任何部分的能力,但这使得程序的逻辑变得复杂且纠缠。

在现代编程中,goto 语句被认为是有害的结构和不良编程实践。

goto 语句在大多数 C++ 程序中可以用 breakcontinue 语句替换。