goto语句是一个跳转语句,有时也称为无条件跳转语句。 goto语句可用于从函数的任何位置跳转到任何位置。
语法:
Syntax1 | Syntax2
----------------------------
goto label; | label:
. | .
. | .
. | .
label: | goto label;
在以上语法中,第一行告诉编译器转到或跳到标记为标签的语句。这里label是一个用户定义的标识符,它指示目标语句。 “ label:”之后紧随其后的语句是目标语句。 “标签:”也可以出现在“转到标签”之前;上面语法中的语句。
以下是有关如何使用goto语句的一些示例:
例子:
- 类型1 :在这种情况下,我们将看到与上面的语法1相似的情况。假设我们需要编写一个程序来检查数字是否为偶数,并使用goto语句进行相应打印。下面的程序说明了如何执行此操作:
C
// C program to check if a number is // even or not using goto statement #include
// function to check even or not void checkEvenOrNot(int num) { if (num % 2 == 0) // jump to even goto even; else // jump to odd goto odd; even: printf("%d is even", num); // return if even return; odd: printf("%d is odd", num); } int main() { int num = 26; checkEvenOrNot(num); return 0; }
C++
// C++ program to check if a number is // even or not using goto statement #include
using namespace std; // function to check even or not void checkEvenOrNot(int num) { if (num % 2 == 0) // jump to even goto even; else // jump to odd goto odd; even: cout << num << " is even"; // return if even return; odd: cout << num << " is odd"; } // Driver program to test above function int main() { int num = 26; checkEvenOrNot(num); return 0; }
C
// C program to print numbers // from 1 to 10 using goto statement #include
// function to print numbers from 1 to 10 void printNumbers() { int n = 1; label: printf("%d ",n); n++; if (n <= 10) goto label; } // Driver program to test above function int main() { printNumbers(); return 0; }
C++
// C++ program to print numbers // from 1 to 10 using goto statement #include
using namespace std; // function to print numbers from 1 to 10 void printNumbers() { int n = 1; label: cout << n << " "; n++; if (n <= 10) goto label; } // Driver program to test above function int main() { printNumbers(); return 0; }
输出:26 is even
- 类型2 ::在这种情况下,我们将看到类似于上面的语法1中所示的情况。假设我们需要编写一个程序,使用goto语句打印从1到10的数字。下面的程序说明了如何执行此操作。
C
// C program to print numbers // from 1 to 10 using goto statement #include
// function to print numbers from 1 to 10 void printNumbers() { int n = 1; label: printf("%d ",n); n++; if (n <= 10) goto label; } // Driver program to test above function int main() { printNumbers(); return 0; } C++
// C++ program to print numbers // from 1 to 10 using goto statement #include
using namespace std; // function to print numbers from 1 to 10 void printNumbers() { int n = 1; label: cout << n << " "; n++; if (n <= 10) goto label; } // Driver program to test above function int main() { printNumbers(); return 0; } 输出:1 2 3 4 5 6 7 8 9 10
使用goto语句的缺点:
- 不建议使用goto语句,因为它会使程序逻辑非常复杂。
- 使用goto使得分析和验证程序(尤其是涉及循环的程序)的正确性的任务非常困难。
- 使用break和continue语句可以简单地避免使用goto。
想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。