博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
goto语句(转)
阅读量:4113 次
发布时间:2019-05-25

本文共 952 字,大约阅读时间需要 3 分钟。

goto无条件跳转语句,建议尽量少的使用,不符合结构化程序的设计思想。
语法形式:goto 语句标签  ;
要使用goto语句,必须在希望跳转的语句前面加上语句标签。语句标签就是标识符后面加冒号。包含这些标签的goto语句可以出现在同一个函数中的任何位置。
例1:     #include           int main(void)          {                       goto l1;                    l1:printf("%d",5);                      return 0;               }
例2:struct s *p=NULL;
  ...
  goto state;
  p=(struct s *)malloc(...);//被goto跳过,没有初始化
  ...
  state: ;
  ...
但是,当需要跳出多层嵌套的循环时,使用goto语句可能会非常合适。由于break语句只影响包围它的最内层循环,要想立即从深层嵌套的循环中推出只有一个办法,就是使用goto语句,如下例所示:
while(condition1)
 {
             while(condition2)
              {
                      while(condition3)
                      {
                             if(some disaster)
                             goto  quit;
                      }
              }
}
quit:  ;
想在这种情况下避免使用goto语句有两种方案。第一个方案是当你希望退出所有循环时设置一个状态标志,但这个标志在每个循环中都必须进行测试:
enum { EXIT, OK } status;
....
status = OK;
while(status == OK && condition1)
{
                 while(
status == OK &&
 
condition2)
                  {
                          while(
status == OK &&
 
condition3)
                          {
                                  if(some disaster)
                                   {
                                          status = EXIT;
                                           break;
                                     }
                             }
                   }
}
这个技巧能够实现退出所有循环的目的,但情况被弄得非常复杂。另一种方案是把所有的循环都放到一个单独的函数里面,当灾难降临到最内层的循环时,你可以使用return语句离开这个函数。

转载地址:http://qursi.baihongyu.com/

你可能感兴趣的文章
C 语言学习 --设置文本框内容及进制转换
查看>>
C 语言 学习---判断文本框取得的数是否是整数
查看>>
C 语言 学习---ComboBox相关、简单计算器
查看>>
C 语言 学习---ComboBox相关、简易“假”管理系统
查看>>
C 语言 学习---回调、时间定时更新程序
查看>>
C 语言 学习---复选框及列表框的使用
查看>>
第四章 - 程序计数器
查看>>
第七章 - 本地方法栈
查看>>
第十一章 - 直接内存
查看>>
JDBC核心技术 - 上篇
查看>>
JDBC核心技术 - 下篇
查看>>
一篇搞懂Java反射机制
查看>>
一篇彻底搞懂Java注解与枚举类
查看>>
【2021-MOOC-浙江大学-陈越、何钦铭-数据结构】树
查看>>
MySQL主从复制不一致的原因以及解决方法
查看>>
RedisTemplate的key默认序列化器问题
查看>>
序列化与自定义序列化
查看>>
ThreadLocal
查看>>
从Executor接口设计看设计模式之最少知识法则
查看>>
OKhttp之Call接口
查看>>