C 语言中的 Goto 语句

在 C 语言编程中,goto 语句可用于改变程序的执行流程。当编译器遇到 goto 语句时,它会无条件地(向前或向后)跳转到语句中指定的位置(我们称之为标签)。

与 Break 和 Continue 不同,此编程语言中的 goto 语句不需要任何 If 条件即可执行。

C 语言 Goto 语句语法

goto 语句后指定的标签是我们放置要执行的代码块的位置。从下面的语法可以看出,我们可以将标签放置在程序中的任何位置。无论将其放在 goto 之前还是之后都无关紧要。

Goto Forward and backwards Jump

C 语言 Goto 语句示例

这个 goto 示例程序允许用户输入他/她的各科成绩。接下来,它将使用 Goto 语句检查该人是及格还是不及格。

#include <stdio.h>

int main()
{
  int Totalmarks;

  printf(" \n Please Enter your Subject Marks \n ");
  scanf("%d", & Totalmarks);

  if(Totalmarks >= 50)
   {
     goto Pass;
   }
  else
     goto Fail;
  
  Pass:
     printf(" \n Congratulation! You made it\n");

  Fail:
     printf(" \n Better Luck Next Time\n"); 

 return 0;
}
Goto Statement Example

在上面的程序中,Pass 和 Fail 是我们使用的标签。首先,我们声明了整型变量 Totalmarks。

在下一行,Printf 函数将要求用户输入他/她的总分。scanf 函数会将用户指定的值存储在 Totalmarks 变量中。

在下一行,我们使用 If Else 来检查用户输入的值是否大于或等于 50。请参阅 C 语言编程中的 BreakContinueIf 条件相关文章。

如果条件为 TRUE,If 块内的 C 语言 Goto 语句会将编译器带到 Pass 标签,并执行 Pass 标签内的代码块。

 printf(" \n Congratulation! You made it\n");

否则(如果条件为 FALSE),Else 块内的代码会将编译器带到 Fail 标签。接下来,它会执行 Fail 标签内的代码块。

printf(" \n Better Luck Next Time\n");

注意:尽管所有编程语言都支持 goto 语句,但避免使用或至少尽量减少其使用始终是一种良好的做法。我们可以使用 Break 和 Continue 等替代方案来代替它。