java中for循环的区别_请问java和c中for循环的区别

你说的“c中for循环变量不能再表达式中声明”并不完全正确。在新的 C99 及之后的标准中,for 语句小括号中的第一个部分可以是表达式,也可以是声明。 所以在 C 中你完全可以这样写。

而且还有其他区别:

C99 后,for 语句也有自己的作用域了,小括号中声明的变量在这个作用域中,并且在 for 语句结束后会退出作用域。

而且需要注意的是:循环体本身也有自己的作用域,和 for 语句小括号的作用域不一样。所以你可以在循环体中重定义小括号中声明的变量:// C 代码

for (int b = 3; b 

double b = 3.0;  // 这样写是可以的!

}

而 Java 中 for 的小括号和循环体都在一个作用域中,所以你不能这样做。

对于 Java 还需要注意的是:由于 Java 的“作用域隐藏规则”,你不能在 for 循环中重定义 for 语句所在作用域中的变量。比如这样就不行:// Java 代码

int b;

for (int b = 3; b 

但在 C 中,一个作用域中的名字会隐藏掉外部作用域中的同名者,所以你可以像上面那样写。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值