java二维数组foreach语句问题 for(int x:a) if(x==a.length) //不是很明白

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java二维数组foreach语句问题 for(int x:a) if(x==a.length) //不是很明白相关的知识,希望对你有一定的参考价值。

public class Tautog
public static void main(String args[])
int[][]arr=3,5,1,2,6,5,8,9;
for(int[]a:arr)
for(int x:a)
if(x==a.length)
System.out.print(x);

else

System.out.print(x+" ");




foreach代表高级for循环,是for循环的简化写法,可以遍历集合、数组

我把foreach分解代码给你写在下面吧

public class Tautog 
  public static void main(String args[])
int[][]arr=3,5,1,2,6,5,8,9;
for(int i = 0;i<arr.length;i++)
for(int j = 0;j<arr[i].length;j++)
    int x = arr[i][j];
    if(x==arr[i].length)
     System.out.print(x);
    
    else
    
            System.out.print(x+" ");
      
  
  

参考技术A 如果数组中元素的值等于该数组的长度。 参考技术B for(int x:a)
增强for循环 x为a的一个元素

有关Java里面foreach的问题,我是小白,各位高手告诉下,谢谢

public class Tautog //创建类
public static void main(String[] args) //主方法
int arr2[][] = 4, 3 , 1, 2 ; //定义二维数组
System.out.println("数组中的元素是:"); //提示信息
for (int x[] : arr2) //外层循环变量为一维数组
f or (int e : x) //循环遍历每一个数组元素
if (e == x.length) //判断变量是二维数组中的最后一个元素
System.out.print(e); //输出二维数组的最后一个元素
else //如何不是二维数组中的最后一个元素
System.out.print(e + "、"); //输出信息




我想问下if (e == x.length) //判断变量是二维数组中的最后一个元素这句里面,e是元素为什么可以和长度相等,这句该怎么解释啊?谢谢
那个说明我知道,可是如果最后一个是5,前面也有5,那当e是前面的5时也会出现判断错误的情况,这个最后一个是无论怎样都会输出,但这个是一个条件,区别在于后面那句,如果是最后一个那没有顿号,不是最后一个有顿号!

那句话写错了,他判断不了最后一个元素,像楼上说的这个例子正好最后一个元素是2,所以才相等,如果换个数就不等了,可以换成这样 if (e == arr2[arr2.length-1][x.length-1])就可以判断最后一个元素了 ,把这句话换成
if (e == x.length) //判断变量是二维数组中的最后一个元素

就可以了
参考技术A e是元素2,而x.length是数组长度2,如此而已,你将最后一个元素改为5,然后在if(e==x.length)中写System.out.println("最后一个元素");
System.out.printl(e);你看看最后一个元素是否会输出;
还有无论e==x.length是否成立,最后一个元素都会输出,你根本就无法判断e==x.length是否成立了。
参考技术B 这个算法是错的~~~我只能这么说,虽然结果一样 参考技术C 应该不能这样比较的
在这个例子中刚好最后一个元素是2,而且长度也是2
参考技术D 这个 你还是看看书吧 亲。。

以上是关于java二维数组foreach语句问题 for(int x:a) if(x==a.length) //不是很明白的主要内容,如果未能解决你的问题,请参考以下文章

JAVAforeach语句 -- for(int I : nums){}

for each语句

java中的foreach语句怎么写

C#中foreach语句的作用?

Java 如何遍历数组里面的数据?

for循环 switch foreach用法合区别