本帖最后由 HM朱蛟 于 2013-3-3 21:44 编辑
看视频到看到毕老师的流程控制fortest的地方,其中有个地方有疑惑,如下代码测试编译不通过,然而在多个初始化表达式的情况下逗号分隔是可以通过的
因此能不能得出结论:
在初始化表达式部分的表达式必须属于同一类型?
仅编译运行了2下,来坛子里确认下这样理解是否可以,先谢啦
class fortest
{
public static void main (String[] args)
{
for (int x = 1,(System.out.println("b"));x<3;System.out.println("b"),x++) //初始化表达式部分变更
{
System.out.println("c");
}
}
}
--------------------error----------------------------------------
:\javawork\lesson2>javac lckz.java
ckz.java:46: 需要 <标识符>
for (int x = 1,(System.out.println("b"));x<3;System.out.println(
b"),x++)
^
ckz.java:46: 需要 ';'
for (int x = 1,(System.out.println("b"));x<3;System.out.println(
b"),x++)
^
ckz.java:46: 非法的类型开始
for (int x = 1,(System.out.println("b"));x<3;System.out.println(
b"),x++)
^
ckz.java:46: 不是语句
for (int x = 1,(System.out.println("b"));x<3;System.out.println(
b"),x++)
^
ckz.java:46: 需要 ';'
for (int x = 1,(System.out.println("b"));x<3;System.out.println(
b"),x++)
^
ckz.java:46: 需要 ';'
for (int x = 1,(System.out.println("b"));x<3;System.out.println(
b"),x++)
^
错误
------------------下面的代码通过①-------------------------------------
class fortest
{
public static void main (String[] args)
{
for (int x = 1,y=0;x<3;System.out.println("b"),x++) //初始化表达式部分变更
{
System.out.println("c");
System.out.println("y="+y);
}
}
}
------------------下面的代码通过②-------------------------------------
class fortest
{
public static void main (String[] args)
{
int x = 1,y=0;
for (System.out.println("i"),System.out.println("o");x<3;System.out.println("b"),x++) //初始化表达式部分变更
{
System.out.println("c");
System.out.println("y="+y);
}
}
}
|