gpt4 book ai didi

java - 增强的for语句

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:48:35 26 4
gpt4 key购买 nike

你能帮我理解发生了什么吗?我读了一本书 Core Java。第一个变体来自那里。第二种变体是我尝试编译程序。我有:Java 版本“1.7.0_21”Java(TM) SE 运行时环境(build 1.7.0_21-b11)Java HotSpot(TM) 64 位服务器 VM(构建 23.21-b01,混合模式)

public class Welcome
{
public static void main(String[] args)
{
String[] greeting = new String[3];
greeting[0] = "Welcome to Core Java";
greeting[1] = "by Cay Horstmann";
greeting[2] = "and Gary Cornell";

for (String g: greeting)
System.out.println(greeting[g]);
}
}

结果:

Welcome.java:16: error: incompatible types
System.out.println(greeting[g]);
^
required: int
found: String
1 error

如果我更改我的代码:

public class Welcome
{
public static void main(String[] args)
{
String[] greeting = new String[3];
greeting[0] = "Welcome to Core Java";
greeting[1] = "by Cay Horstmann";
greeting[2] = "and Gary Cornell";

for (int g: greeting)
System.out.println(greeting[g]);
}
}

结果是:

Welcome.java:15: error: incompatible types
for (int g: greeting)
^
required: int
found: String
1 error

最佳答案

您没有在 enhanced for-loop 中获得 index .您将获得对正在迭代的容器 中的值的引用。因此,您可以直接打印它。

更改第一个st 代码段中的以下语句:

System.out.println(greeting[g]);

到:

System.out.println(g);

对于您的第 2 个nd 片段,这是:

for (int g: greeting)

完全没有意义。正如我所说,您获得了对 greeting 中元素的引用的副本,并且由于 greeting 中的元素属于 String 类型,因此您的循环变量应该是第一个片段中的 String g

关于java - 增强的for语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18045783/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com