| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2353 人关注过本帖
标题:goto语句的使用问题
只看楼主 加入收藏
xunxunmimi
Rank: 1
等 级:新手上路
帖 子:70
专家分:0
注 册:2006-12-12
结帖率:100%
收藏
 问题点数:0 回复次数:2 
goto语句的使用问题
下面的语句是程序中的一段
...
goto end;

int a=5;

end : ;
...

产生如下错误:
initialization of 'a' is skipped by 'goto end'

但是若goto 与 end: 语句之间没有变量的定义,只有其它语句时,就不会产生错误,
不知道为什么。
搜索更多相关主题的帖子: goto 语句 end 变量 定义 
2008-07-10 08:58
mqh21364
Rank: 1
等 级:新手上路
帖 子:642
专家分:0
注 册:2008-2-28
收藏
得分:0 
编程语言好像有这么个规定: 凡是在程序中出现的变量都应该被初始化。 你这样虽然出现了a,但是它的定义却没有被执行到,是不行的。就好象这样:
程序代码:
if (i == 1)
{
    int a = 1;
}
else
{
    int b = 1;
}

也会报错一样。

如果我说得有错误,请大家指正。谢谢!

前不见古人,后不见来者。念天地之悠悠,独怆然而涕下。
2008-07-10 09:15
xunxunmimi
Rank: 1
等 级:新手上路
帖 子:70
专家分:0
注 册:2006-12-12
收藏
得分:0 
谢谢回复。但是我试过了,以下代码并没有错,
if (i == 1)
{
    int a = 1;
}
else
{
    int b = 1;
}
我又发现一种情况,当case 语句中的含有变量定义的代码段被包含在一对 大括号 中,或者 case 语句中的变量定义
出现在 switch-case 语句之前时,就没有错。
比如:
int a;
int i=8;
switch(i)
{
case 3:
    a=5;
    a+=4;
   break;
case 8:
   ;
   break;
}
就没有错误。
或者
int i=8;
switch(i)
{
case 3:
  {
    int a=5; //变量定义包含在大括号中
    a+=4;
  }
   break;
case 8:
     ;
     break;
}
也无错
2008-07-13 10:22
快速回复:goto语句的使用问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025080 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved