java里不支持逗号运算符吗?好象有本书上说可以的。。。。

时间:2021-11-10 17:22:23
class A
{
public static void main(String args[])
{
int a=0;
for(int i=0,System.out.println("a");i<10;i++)  //居然编译出错了。
;
}
}

27 个解决方案

#1


int i=0,System.out.println("a");
执行的是
int i = 0;
int System.out.println("a");
这样当然编译报错了

int a = 0, i;
用for(i = 0, System.out.println("a"); i < 10; i++)
{
    //
}

#2


楼上的,回答的已经很清楚啦啊。

#3


没有什么居然,是必然

在变量声明的位置,怎么能写输出呢

#4


int i=0;
if(3>2)
   i=3,System.out.println(i);

这个为啥报错了。。。半个小时后结贴。。。。

#5



class A
{
    public static void main(String args[])
    {
        int a=0;
        for(int i=0,System.out.println("a");i<10;i++)  //int i =0,System.out.println("a")错了
            ;
    }
}

楼主为什么要写成这样呢???????

#6



class A
{
   public static void main(String args[])
    {
      int i=0; 
      if(3>2) 
       i=3,System.out.println(i);
     }

这个为什么出错了。。。。晕了。。。

#7


i=3,System.out.println(i);

明明是两个不同的语句为什么一定要写在一起呢?

除非这样用:int i = 3, k = 5; 这个等效于 int i = 3; int k = 5;
我们甚至能写成这样:
int[] i = new int[2], k[] = new int[2][3];

但是这种写法一般是不推荐使用的,理由很简单阻碍代码阅读,因此应该改成:
int[]   i = new int[2];
int[][] k = new int[2][3];

#8


,是定义分隔符,不是语句执行分割符。

#9


晕,最基本的语法问题,实在搞不懂的话应该好好看看书啦!!

#10


引用 6 楼 sure2003 的回复:
Java codeclassA
{publicstaticvoidmain(String args[])
    {inti=0;if(3>2) 
       i=3,System.out.println(i);
     }
}
这个为什么出错了。。。。晕了。。。

for的括号里面才可以用逗号分割语句

其它地方应该用分号 <--------应该是常识吧.....难道lz写c/c++的时候也可以用逗号分割语句的?

#11


class A
{
    public static void main(String args[])
    {
        int a=0;
        for(int i=0,System.out.println("a");i<10;i++)  //居然编译出错了。
            ;
    }
}
这样编译当然会出错啦,循环休没有内容啊

#12


我敢保证C里面是可以这样写的。。。

#13


#include<stdio.h>
void main()
{
   int a,b;
   float c;
   if(3>2)
      a=3,printf(" ok "),b=4,c=5.0,printf(" %8.6f%\n\n",c);
}

这个程序在C里是调试正确的。
我很谢谢大家,但也不希望,大家没有调查就说C里是不行的。
class A
{
   public static void main(String args[])
    {
      int i=0; 
      if(3>2) 
       i=3,System.out.println(i);  //可是JAVA这里会编译出错的。
     }

#14


汗,你已经证明了  i=3,System.out.println(i);  //可是JAVA这里会编译出错的。 
java不能这么用。还问什么呢?

#15


即使在c/c++里面理解,這也是錯的啦
i=3,System.out.println(i);你逗號運算符的結果取最後一個,但你Sytem.out.println()哪有返回整型值給i啊

#16


这个只是规定问题,你要是牛的话,可以自己写如何编译代码;
int i=3; 用分号是一句结束
int i=3,j=3;  中间用逗号是定义两个 int i=3; int j=3;
谢谢。

#17


可谁又能解释在java里以下的逗号表达式可以用呢????????
class A
{
public static void main(String args[])
{
int a = 0, i; 
for(i = 0, System.out.println("a"); i < 10; i++) 
{  }
}
}

#18


int i=0;
if(3>2)
  i=3,System.out.println(i);

條件判斷后,如果不用{ ... }的話,只能用一個語句,
i=3,System.out.println(i);是兩個語句。
java是不會自動幫你把其中的“,”變成“;”的。

#19


引用 17 楼 sure2003 的回复:
可谁又能解释在java里以下的逗号表达式可以用呢???????? 
 Java codeclass A
{
    public static void main(String args[])
    {
        int a = 0, i; 
        for(i = 0, System.out.println("a"); i < 10; i++) 
        {         }
    }
}
 
 

不懂为什么可以执行,for循环当中的“,”号和外边的语义不一样

#20


c/c++可以这么写
JAVA我认为是把c/c++容易出错的部分都出错了。

#21


牛角尖的问题 
还没见过把out语句写在这的

#22


不要冠以牛角尖掩饰不知道。
只是相信不同意见,在学习中,才是向上的动力。
因为大家都从一无所知,到知的。

只是不知道
for里边的语句规定,
与if为什么不一样。
在C里是肯定一定的,见我的13楼

#23


無語...將c和java來比,有何意義?C中有逗號表達式,java中沒有這東西,只是for里可以允許以逗號分隔語句
http://www.java-samples.com/showtutorial.php?tutorialid=276

#24


引用 17 楼 sure2003 的回复:
可谁又能解释在java里以下的逗号表达式可以用呢???????? 

Java codeclass A
{
    public static void main(String args[])
    {
        int a = 0, i; 
        for(i = 0, System.out.println("a"); i < 10; i++) 
        {         }
    }
}


这语法是正确的,java支持逗号表达式,在java的for循环初始化时逗号表达式必须是同一类型的,显然i = 0与System.out.println("a")都不是声明变量,因此不会有错,而楼主提到的C语法其实和java基本相同的,之所以C语言可以通过是因为在C语言中任何函数都有返回值,void的值就是数字0,而java中的void是特殊的空值,并非数字

#25


一个int类型、以String类型,当然不支持了。

好比声明,int i=5,j="10000000"; 这个当然不支持了。

int i=5,j=10000000; 这个显然对极了。

#26


一个int类型、一个String类型,当然不支持了。 

好比声明,int i=5,j="10000000"; 这个当然不支持了。 

int i=5,j=10000000; 这个显然对极了。

#27


C里有逗号表达式,如a=(2,3,4)这样的。但java里不支持,会报错

#1


int i=0,System.out.println("a");
执行的是
int i = 0;
int System.out.println("a");
这样当然编译报错了

int a = 0, i;
用for(i = 0, System.out.println("a"); i < 10; i++)
{
    //
}

#2


楼上的,回答的已经很清楚啦啊。

#3


没有什么居然,是必然

在变量声明的位置,怎么能写输出呢

#4


int i=0;
if(3>2)
   i=3,System.out.println(i);

这个为啥报错了。。。半个小时后结贴。。。。

#5



class A
{
    public static void main(String args[])
    {
        int a=0;
        for(int i=0,System.out.println("a");i<10;i++)  //int i =0,System.out.println("a")错了
            ;
    }
}

楼主为什么要写成这样呢???????

#6



class A
{
   public static void main(String args[])
    {
      int i=0; 
      if(3>2) 
       i=3,System.out.println(i);
     }

这个为什么出错了。。。。晕了。。。

#7


i=3,System.out.println(i);

明明是两个不同的语句为什么一定要写在一起呢?

除非这样用:int i = 3, k = 5; 这个等效于 int i = 3; int k = 5;
我们甚至能写成这样:
int[] i = new int[2], k[] = new int[2][3];

但是这种写法一般是不推荐使用的,理由很简单阻碍代码阅读,因此应该改成:
int[]   i = new int[2];
int[][] k = new int[2][3];

#8


,是定义分隔符,不是语句执行分割符。

#9


晕,最基本的语法问题,实在搞不懂的话应该好好看看书啦!!

#10


引用 6 楼 sure2003 的回复:
Java codeclassA
{publicstaticvoidmain(String args[])
    {inti=0;if(3>2) 
       i=3,System.out.println(i);
     }
}
这个为什么出错了。。。。晕了。。。

for的括号里面才可以用逗号分割语句

其它地方应该用分号 <--------应该是常识吧.....难道lz写c/c++的时候也可以用逗号分割语句的?

#11


class A
{
    public static void main(String args[])
    {
        int a=0;
        for(int i=0,System.out.println("a");i<10;i++)  //居然编译出错了。
            ;
    }
}
这样编译当然会出错啦,循环休没有内容啊

#12


我敢保证C里面是可以这样写的。。。

#13


#include<stdio.h>
void main()
{
   int a,b;
   float c;
   if(3>2)
      a=3,printf(" ok "),b=4,c=5.0,printf(" %8.6f%\n\n",c);
}

这个程序在C里是调试正确的。
我很谢谢大家,但也不希望,大家没有调查就说C里是不行的。
class A
{
   public static void main(String args[])
    {
      int i=0; 
      if(3>2) 
       i=3,System.out.println(i);  //可是JAVA这里会编译出错的。
     }

#14


汗,你已经证明了  i=3,System.out.println(i);  //可是JAVA这里会编译出错的。 
java不能这么用。还问什么呢?

#15


即使在c/c++里面理解,這也是錯的啦
i=3,System.out.println(i);你逗號運算符的結果取最後一個,但你Sytem.out.println()哪有返回整型值給i啊

#16


这个只是规定问题,你要是牛的话,可以自己写如何编译代码;
int i=3; 用分号是一句结束
int i=3,j=3;  中间用逗号是定义两个 int i=3; int j=3;
谢谢。

#17


可谁又能解释在java里以下的逗号表达式可以用呢????????
class A
{
public static void main(String args[])
{
int a = 0, i; 
for(i = 0, System.out.println("a"); i < 10; i++) 
{  }
}
}

#18


int i=0;
if(3>2)
  i=3,System.out.println(i);

條件判斷后,如果不用{ ... }的話,只能用一個語句,
i=3,System.out.println(i);是兩個語句。
java是不會自動幫你把其中的“,”變成“;”的。

#19


引用 17 楼 sure2003 的回复:
可谁又能解释在java里以下的逗号表达式可以用呢???????? 
 Java codeclass A
{
    public static void main(String args[])
    {
        int a = 0, i; 
        for(i = 0, System.out.println("a"); i < 10; i++) 
        {         }
    }
}
 
 

不懂为什么可以执行,for循环当中的“,”号和外边的语义不一样

#20


c/c++可以这么写
JAVA我认为是把c/c++容易出错的部分都出错了。

#21


牛角尖的问题 
还没见过把out语句写在这的

#22


不要冠以牛角尖掩饰不知道。
只是相信不同意见,在学习中,才是向上的动力。
因为大家都从一无所知,到知的。

只是不知道
for里边的语句规定,
与if为什么不一样。
在C里是肯定一定的,见我的13楼

#23


無語...將c和java來比,有何意義?C中有逗號表達式,java中沒有這東西,只是for里可以允許以逗號分隔語句
http://www.java-samples.com/showtutorial.php?tutorialid=276

#24


引用 17 楼 sure2003 的回复:
可谁又能解释在java里以下的逗号表达式可以用呢???????? 

Java codeclass A
{
    public static void main(String args[])
    {
        int a = 0, i; 
        for(i = 0, System.out.println("a"); i < 10; i++) 
        {         }
    }
}


这语法是正确的,java支持逗号表达式,在java的for循环初始化时逗号表达式必须是同一类型的,显然i = 0与System.out.println("a")都不是声明变量,因此不会有错,而楼主提到的C语法其实和java基本相同的,之所以C语言可以通过是因为在C语言中任何函数都有返回值,void的值就是数字0,而java中的void是特殊的空值,并非数字

#25


一个int类型、以String类型,当然不支持了。

好比声明,int i=5,j="10000000"; 这个当然不支持了。

int i=5,j=10000000; 这个显然对极了。

#26


一个int类型、一个String类型,当然不支持了。 

好比声明,int i=5,j="10000000"; 这个当然不支持了。 

int i=5,j=10000000; 这个显然对极了。

#27


C里有逗号表达式,如a=(2,3,4)这样的。但java里不支持,会报错