黑马程序员技术交流社区

标题: java 基础for循环,错在哪?? [打印本页]

作者: 893269222    时间: 2015-3-15 19:54
标题: java 基础for循环,错在哪??
  1. class Demo3_5
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 //int x=1;
  6.                 for(int x=1,System.out.println("a");x<3;System.out.println("c"),x++)
  7.                 {
  8.              System.out.println("d");
  9.                          //x++;
  10.                 }
  11.                
  12.         }
  13. }
复制代码


作者: みぎ    时间: 2015-3-15 20:05
这样写,编译都不能通过吧。for 循环的语法是for( initialization; Boolean-expression; step)
initialization :初始化表达式;
Boolean-expression: 布尔表达式;
step :步进运算
作者: 893269222    时间: 2015-3-15 20:08
みぎ 发表于 2015-3-15 20:05
这样写,编译都不能通过吧。for 循环的语法是for( initialization; Boolean-expression; step)
initializat ...

毕老师视频里就是这样的,怎么我写出来就报错??
作者: 893269222    时间: 2015-3-15 20:18
  1. public class Demo3_5_1
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 while (true)
  6.                 {
  7.                 }
  8.                 for ( ; ; )
  9.                 {
  10.                 }
  11.         }
  12. }
  13. [img]C:\Users\Administrator.VOG6WOCVRQYSZY6\Pictures\java[/img]
复制代码

2.png (54.66 KB, 下载次数: 27)

2.png

作者: 893269222    时间: 2015-3-15 20:27
893269222 发表于 2015-3-15 20:18

重启了DOS窗口,无限询问可以了
作者: 混乱的世界    时间: 2015-3-15 20:32
int x=1,System.out.println("a")这句话有问题吧System.out.println("a")没有返回值
作者: 理当如此    时间: 2015-3-15 20:32
for的格式
for(初始化表达式;循环条件表达式;循环后的操作表达式)
{
执行语句;
}
这才是毕老师讲的格式。初始化表达式就是定义变量,例如 int x=1,后面没有打印输出语句。标准是这样的
for(int x=1;x<3;x++)
{
  System.out.println("a");
}
看视频要仔细
作者: みぎ    时间: 2015-3-15 20:41
893269222 发表于 2015-3-15 20:08
毕老师视频里就是这样的,怎么我写出来就报错??

查了下资料,在控制表达式的初始化和步进控制部分,可以使用一系列逗号分隔的语句。
这样的话程序应该没有问题,
把System.out.println("a") 换成 y=2等类似的语句,编译就可以通过。暂时还不知道原因。
作者: 杨强彪    时间: 2015-3-15 21:21
893269222 发表于 2015-3-15 20:08
毕老师视频里就是这样的,怎么我写出来就报错??

你确定毕老师写的是你写的?截个屏来看下
作者: mark.tian    时间: 2015-3-15 21:36
老毕的视屏中没有像你这样写初始化语句的。。。把int x=1,去掉,在for循环外面类中定义int x=1,就行了!
作者: wildcat    时间: 2015-3-15 21:45
有点意思 !!!!!
作者: ankje    时间: 2015-3-15 22:04
int x=1,System.out.println("a") java会把前面两句看成是这个形式的语句-->int x=1,y=1;而如果你把x声明在for外面,即int x;放在for外面,然后里面就可以这么写  for(x=1,System.out.println("a");x<3;System.out.println("c"),x++)
作者: 李伟松    时间: 2015-3-15 22:23
好乱的代码
作者: 893269222    时间: 2015-3-15 23:20
本帖最后由 893269222 于 2015-3-15 23:35 编辑
杨强彪 发表于 2015-3-15 21:21
你确定毕老师写的是你写的?截个屏来看下

C:\Users\Administrator.VOG6WOCVRQYSZY6\Pictures\java

3.jpg (81.23 KB, 下载次数: 21)

3.jpg

暴风截图201531519057394.jpg (129.54 KB, 下载次数: 25)

暴风截图201531519057394.jpg

作者: 893269222    时间: 2015-3-15 23:24
ankje 发表于 2015-3-15 22:04
int x=1,System.out.println("a") java会把前面两句看成是这个形式的语句-->int x=1,y=1;而如果你把x声明在 ...

这样可以
作者: android-liu    时间: 2015-3-15 23:47
开发中没有这样写的,毕老师是帮助理解才这么做的
作者: 和谐木马    时间: 2015-3-16 00:11
对,int x=1,System.out.println("a");Java也会把System.out.println("a")也看成定义一个int变量,所以会报错!
作者: HMjack168    时间: 2015-3-16 00:28
涨姿势了!
作者: 893269222    时间: 2015-3-16 10:57
和谐木马 发表于 2015-3-16 00:11
对,int x=1,System.out.println("a");Java也会把System.out.println("a")也看成定义一个int变量,所以会报 ...

有道理,多谢
作者: 有丶时候    时间: 2015-3-16 13:07
我是来看回复的,涨姿势了
作者: 为黑马而来    时间: 2015-3-16 13:30
涨知识啊!~12楼正解!
作者: konglingzhiyu    时间: 2015-3-16 13:55
好乱的代码。。。
作者: 鸡脑壳    时间: 2015-3-16 14:07
ankje 发表于 2015-3-15 22:04
int x=1,System.out.println("a") java会把前面两句看成是这个形式的语句-->int x=1,y=1;而如果你把x声明在 ...

大神的意思能懂,我想问问有没有方法或者格式能实现在 for 条件初始化中即把 int x=1 赋值了又能让系统打印字符串 a
我想问的是有没有这种方法,而不是 如何 实现最后的结果
作者: wenke    时间: 2015-3-16 15:21
搞这种写法有意义吗  自己给自己找麻烦  
作者: wenke    时间: 2015-3-16 15:24
for(1;2;3)   1 这里必须是初始化语句 类似i=20,j=40,m=30  2 必须是条件表达式 结果为boolean类型的true or false ; 3 可以是任意的语句  
作者: 蓝玉    时间: 2015-3-16 15:30
学习学习。长知识
作者: 千殇一梦    时间: 2015-3-16 16:02
学到新东西了。不错
作者: ankje    时间: 2015-3-16 22:39
鸡脑壳 发表于 2015-3-16 14:07
大神的意思能懂,我想问问有没有方法或者格式能实现在 for 条件初始化中即把 int x=1 赋值了又能让系统打 ...

1.我不是什么大神,俺只是草民一个
2.你的问题比较刁钻,我个人建议你还是往实用的角度去想问题
3.不过我还是勉强的试一试了,你看看这样行不。不行的话我也没办法了,如果你想到什么办法的话也告诉我一声吧。
  1. public static void main(String[] args) {
  2.                 for(int i=sop();i<10;i++){}
  3.         }

  4.         public static int sop(){System.out.println("ok");return 0;}
复制代码

作者: 鸡脑壳    时间: 2015-3-23 23:08
ankje 发表于 2015-3-16 22:39
1.我不是什么大神,俺只是草民一个
2.你的问题比较刁钻,我个人建议你还是往实用的角度去想问题
3.不过我 ...

谢谢,以后还是先从实用性考虑,在考虑细节




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2