C++ goto 语句


2022年8月18日, Learn eTutorial
1897

C++ 编程中的 goto 语句用于通过将控制权转移到程序的另一部分来改变程序执行的正常序列。

C++ 中 goto 语句的语法


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

 

在上面给出的语法中,label 似乎是一个标识符。当遇到命令 **goto label**; 时,程序的控制权将跳转到 **label**: 并执行其下面的代码。

Goto Statements

图显示了 goto 在 C++ 中的工作方式

goto 语句的示例

让我们编写一个程序来计算用户输入的数字的平均值。

假设如果用户输入一个负数,它将忽略该数字并计算之前输入的平均数。


# include <iostream>
using namespace std;

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

    cout << "Maximum number of inputs: ";
    cin >> n;

    for(i = 1; i <= n; ++i)
    {
        cout << "Enter n" << i << ": ";
        cin >> num;
        
        if(num < 0.0)
        {
           // Control of the program move to jump:
            goto jump;
        } 
        sum += num;
    }
    
jump:
    average = sum / (i - 1);
    cout << "\nAverage = " << average;
    return 0;
}

输出

Average = -nanMaximum number of inputs: 3
Enter n1: 1
Enter n2: 2
Enter n3: 3
Average = 2

Goto 语句在 C++ 编程中是可选的,通常建议避免使用它们。

避免使用 goto 语句的原因

  • goto 语句允许您跳转到程序的任何部分,但这会使逻辑复杂和混乱。
  • 在现代编程中,goto 语句被认为是一种有害的结构和不良的编程习惯。
  • 在大多数 C++ 程序中,goto 语句可以用 break 和 continue 语句替换。