关于for语句的一些疑问

CescSkye 2011-04-20 11:29:11
我有一个以下结构的程序
int x;
switch(a)
{
case 1:
for(x=0; x<10; x++)
{
........
}
case 2:
..........
}

我的问题是 调试的时候上面x的值为乱值2万多 但是还进到for语句中执行了 而且里面有的算式结果也是正确的 请问为什么调试的时候显示会是乱的值呢 我看了地址中第一次执行也不是0
...全文
159 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
無_1024 2011-04-20
  • 打赏
  • 举报
回复
case后面有break不要忘记了 还有如果运行过程中是不会有问题的
hongwenjun 2011-04-20
  • 打赏
  • 举报
回复
第一次 有人这样问
pathuang68 2011-04-20
  • 打赏
  • 举报
回复
x未赋初值,所以看到的是乱数。
但一旦运行到for(x=0; x<10; x++)这个循环,x首先就被初始化成0,接下来就一切正常了。
johnroot 2011-04-20
  • 打赏
  • 举报
回复
switch(a)
{
case 1:
for(int x=0; x<10; x++)
{
........
}
case 2:
..........
}

看看
CescSkye 2011-04-20
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 pengzhixi 的回复:]
额 你switch用的是a的值,至于进入for循环,你没看到x=0这句吗
[/Quote]
对啊 那x为什么不得0呢 我调试的时候x是2万多 它小于10还成立了 进入了for里面
pengzhixi 2011-04-20
  • 打赏
  • 举报
回复
额 你switch用的是a的值,至于进入for循环,你没看到x=0这句吗
CescSkye 2011-04-20
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 wizard_tiger 的回复:]

引用 11 楼 dingdingweiwei 的回复:

不好意思各位 我解决了 我把case段用大括号括起来了 就没事了 这是为什么呢??????
万分疑惑

你是不是把break写在for语句里面了。
[/Quote]
没有 呵呵
wizard_tiger 2011-04-20
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 dingdingweiwei 的回复:]

不好意思各位 我解决了 我把case段用大括号括起来了 就没事了 这是为什么呢??????
万分疑惑
[/Quote]
你是不是把break写在for语句里面了。
qq675927952 2011-04-20
  • 打赏
  • 举报
回复
确定有些时候调试的时候 是会出现 乱码..我也遇到过这种情况...
CescSkye 2011-04-20
  • 打赏
  • 举报
回复
看别人写的代码 太郁闷了 case后面一大段一大段的 不滚轮都看不到下一个case 他就不能给写个函数嘛 哎~~~~ 我决定把他改了!!!!
fengskill126 2011-04-20
  • 打赏
  • 举报
回复
我猜测下哈,可能是你原来的程序
case 1:
for(x=0; x<10; x++)
{
........
}
这段里面的break退出的是大括号里面的循环,不包括for语句的(for语句不在括号内).
CescSkye 2011-04-20
  • 打赏
  • 举报
回复
不好意思各位 我解决了 我把case段用大括号括起来了 就没事了 这是为什么呢??????
万分疑惑
hiqrf 2011-04-20
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 pathuang68 的回复:]
引用 7 楼 dingdingweiwei 的回复:

引用 4 楼 pathuang68 的回复:

x未赋初值,所以看到的是乱数。
但一旦运行到for(x=0; x<10; x++)这个循环,x首先就被初始化成0,接下来就一切正常了。

您好 这个我调试的时候 已经进到for语句里了 x还是乱值 可是 他2万多小于10居然成功了 我用的是VC6

进入循环后x就不会是乱数了
[/Quote]

贴调试图
pathuang68 2011-04-20
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 dingdingweiwei 的回复:]

引用 4 楼 pathuang68 的回复:

x未赋初值,所以看到的是乱数。
但一旦运行到for(x=0; x<10; x++)这个循环,x首先就被初始化成0,接下来就一切正常了。

您好 这个我调试的时候 已经进到for语句里了 x还是乱值 可是 他2万多小于10居然成功了 我用的是VC6
[/Quote]
进入循环后x就不会是乱数了
CescSkye 2011-04-20
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 hnuqinhuan 的回复:]

case后面有break不要忘记了 还有如果运行过程中是不会有问题的
[/Quote]

您好 我有break 忘记写上去了 不好意思
CescSkye 2011-04-20
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 pathuang68 的回复:]

x未赋初值,所以看到的是乱数。
但一旦运行到for(x=0; x<10; x++)这个循环,x首先就被初始化成0,接下来就一切正常了。
[/Quote]
您好 这个我调试的时候 已经进到for语句里了 x还是乱值 可是 他2万多小于10居然成功了 我用的是VC6

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧