java 增强for循环为啥输出的是一串地址值?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 增强for循环为啥输出的是一串地址值?相关的知识,希望对你有一定的参考价值。

参考技术A 为什么java增强for循环输出一串地址值?

因为for(String str: array)java的增强for循环左边有一个参数类型,右边有一个循环数组,严格来说两个数组之间没有联系,除非一个数组的值与另一个数组的下标有关。前端增强型for循环可以同时输出两个数组。for(var index in array)因为前端增强for的左边是数组的下标,右边是循环数组,只要加上循环长度大的数组和一些判断,就可以同时输出两个数组。以上是我个人的看法,希望对你有帮助。本回答被提问者采纳
参考技术B 因为for(String str: array)java的增强for循环左边有一个参数类型,右边有一个循环数组,严格来说两个数组之间没有联系,除非一个数组的值与另一个数组的下标有关。前端增强型for循环可以同时输出两个数组。for(var index in array)因为前端增强for的左边是数组的下标,右边是循环数组,只要加上循环长度大的数组和一些判断,就可以同时输出两个数组。以上是我个人的看法,希望对你有帮助 参考技术C for(String str: array)java的增强for循环左边有一个参数类型,右边有一个循环数组,严格来说两个数组之间没有联系,除非一个数组的值与另一个数组的下标有关。前端增强型for循环可以同时输出两个数组。for(var index in array)因为前端增强for的左边是数组的下标,右边是循环数组,只要加上循环长度大的数组和一些判断,就可以同时输出两个数组

java for循环 判断条件为空时 构造方法为啥不需要返回值

public class TestReturn
public int test1()
System.out.println("无返回值类型的return语句");
int i;
for (i=0;;i++)
if(i==4)
return i;

System.out.println("i="+i);


public String test2()
System.out.println("有返回值类型的return语句");
return "HelloJava";

public static void main(String[]args)
TestReturn t=new TestReturn();
t.test1();

//System.out.println(t.test1());
System.out.println(t.test2());


for (i=0;;i++)
if(i==4)
return i;

System.out.println("i="+i);

不是已经返回了吗?

返回值不一定要写在方法最下边啊 只要各个运行流程分支中都存在返回值就可以编译。
这里for循环判断条件为空,则条件永真成为死循环方法根本不会自然结束,有没有return虚拟机
也读不到,在最后加入return语句反而会因为Unreachable code ,不能达到的代码而无法编译
参考技术A 构造方法是不需要返回值的,而且是不能要的,这是规定,没有为什么追问

上面说错了,应该是构造函数

追答

构造方法就是构造函数啊
在java里面,一个函数就是一个方法的

参考技术B 你这个方法没有结束返回值,在最后的花括号里面加一个return 就行了
public int test1()
System.out.println("无返回值类型的return语句");
int i;
for (i=0;;i++)
if(i==4)
return i;

System.out.println("i="+i);

return 0;
参考技术C 永真。。。。
当然不要

以上是关于java 增强for循环为啥输出的是一串地址值?的主要内容,如果未能解决你的问题,请参考以下文章

java基础第十二篇之集合增强for循环迭代器和泛型

一个for循环为啥能够把这个数组的每个值输出

Python for循环内变量自增为啥没有效果?

Java 增强 for 循环

增强的 for 循环不适用于将值分配给数组(Java)[重复]

java for循环中的sleep