A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黑马--杨博 中级黑马   /  2013-5-3 18:13  /  2079 人查看  /  14 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 黑马--杨博 于 2013-5-4 21:37 编辑

class Demo
{
        public static void main(String[] args)
        {
                //为什么必须把自变量定义到for循环外面才能运行,定义到初始化语句中总是报错
                for(int x=1,System.out.println("a");x<4;System.out.println("c"),x++)
                {
                        System.out.println("b");               
                }
        }
}

评分

参与人数 1技术分 +1 收起 理由
曹睿翔 + 1 很好的问题

查看全部评分

14 个回复

倒序浏览
java默认的是 int a,b ;   系统默认逗号后面应该是与a相同的自变量,你来了个执行语句System...它给短路了。
回复 使用道具 举报
本帖最后由 chouwayメ 于 2013-5-3 19:09 编辑
尹桥印 发表于 2013-5-3 18:41
沙发说得不完全正确。
我觉得for循环里面的初始化变量应该类型要相同,或者使用的调用方法应该相同。这个是 ...

学习了嗯应该同种类型或者方法 。
回复 使用道具 举报
我也同意藤椅所说的。
回复 使用道具 举报
mark下,等正解出了,重新看下~
回复 使用道具 举报
for循环里变量初始化用到的逗号名为逗号操作符,java里唯一用到逗号操作符的地方就是for循环里(注意是逗号操作符,而不是逗号分隔符),通过使用逗号操作符,可以在for语句内定义多个变量,但是它们必须具有相同的类型;

评分

参与人数 1技术分 +1 收起 理由
曹睿翔 + 1 说明下你这个概念的出处

查看全部评分

回复 使用道具 举报
楼上的这个也是可以运行的
  1. class Demo
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                                 int x = 1;
  6.                 for(x++,System.out.println("d");x<4;x++,System.out.println("c"))
  7.                 {
  8.                         System.out.println("b");               
  9.                 }
  10.         }
复制代码
其实我是这么认为的 ,出这个问题的原因不是for循环的问题,而是定义变量的问题,定义变量的格式是:变量类型  变量名  =  初始化值;    (注意分号)声明变量是分号才是结束,这里又分出两种情况了 ;int x = 1 放在System.out.println("a")前面和后面的问题了,他们报的错是不同的,int x = 1放前面,用逗号隔开,折中错报的是说变量的定义需要分号,可以解释沙发说的变量类型要相同,同时如果不出现数据类型用逗号隔开是没问题的比如我上面的代码,int x=1放后面报的错我就不知道了 要请高手解答一下,

总结一下就是,for循环中的条件表达式中如果出现声明变量那么用逗号隔开的也必须是相同数据类型的,如果是其他语句则用逗号隔开就没关系了..

这个我个人思考和验证出来的 ,可能还不是很正确欢迎各位指出

评分

参与人数 1技术分 +1 收起 理由
曹睿翔 + 1 很给力!

查看全部评分

回复 使用道具 举报


如果仍有问题,请继续追问,如果问题已解决,请将分类改为已解决,谢谢
回复 使用道具 举报
曹睿翔 发表于 2013-5-4 07:09
如果仍有问题,请继续追问,如果问题已解决,请将分类改为已解决,谢谢 ...

概念出处:java编程思想 第4版 作者Bruce Eckel;第67页
回复 使用道具 举报
chouwayメ 发表于 2013-5-3 18:29
java默认的是 int a,b ;   系统默认逗号后面应该是与a相同的自变量,你来了个执行语句System...它给短路 ...

{:2_42:}大神,学习了
回复 使用道具 举报
江大海 发表于 2013-5-4 18:04
大神,学习了

偶是新手。。。说得不好,{:2_33:}
回复 使用道具 举报
施祖喜 发表于 2013-5-3 23:27
楼上的这个也是可以运行的其实我是这么认为的 ,出这个问题的原因不是for循环的问题,而是定义变量的问题, ...

果然高手,学到了,懂了。谢谢
回复 使用道具 举报
黑马--杨博 发表于 2013-5-4 21:43
果然高手,学到了,懂了。谢谢

  呵呵  俺也是新手哦,才接触不到三个月,相信自己 有些问题自己多去想想会有很多意外的收获的
回复 使用道具 举报
曾德强 发表于 2013-5-4 12:22
概念出处:java编程思想 第4版 作者Bruce Eckel;第67页

下次可以直接在你回复的帖子上修改,方便大家查阅
哥们,看书很好
回复 使用道具 举报
曹睿翔 发表于 2013-5-4 23:16
下次可以直接在你回复的帖子上修改,方便大家查阅
哥们,看书很好

呵呵,好的!下次一定。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马