鱼C论坛

 找回密码
 立即注册
查看: 691|回复: 11

[已解决]请问idea里数组索引值变红了是咋回事呢请问

[复制链接]
发表于 2023-8-4 13:40:15 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
import java.util.Scanner;

public class ArrayDemo4 {
    public static void main(String[] args) {
        double[] scores = new double[6];
        Scanner sc = new Scanner(System.in);
        for (int i = 0; i < scores.length; i++);{
            
            double score = sc.nextDouble();
            scores[i] = score;
        }
        double sum = 0;
        for (int i = 0; i < scores.length; i++) {
            sum += scores[i];
        }
        System.out.println("AS is:" + sum/scores.length);
    }
}

12行那 scores[i]里的索引变红了 中文报错找不到符号 请问是咋回事呢?
最佳答案
2023-8-4 13:40:24
本帖最后由 学习编程中的Ben 于 2023-8-4 13:49 编辑

在您提供的代码中,出现了一个分号使得错误产生了。
问题出在 for 循环的语句块上。请注意以下代码段:
javafor (int i = 0; i < scores.length; i++);{

在这里,您使用了一个额外的分号将 for 循环的语句块结束了。因此,后面的代码块不再被视为循环的一部分,导致 scores[i] 中的索引无法识别。

为了解决这个问题,您只需要删除多余的分号,代码如下所示:
for (int i = 0; i < scores.length; i++) {
    double score = sc.nextDouble();
    scores[i] = score;
}

请重新运行代码,这次应该不会再出现索引变红的错误了。祝您编写愉快!

如果回答对你有帮助,请给我一个最佳答案!
数组索引变红.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-8-4 13:40:24 | 显示全部楼层    本楼为最佳答案   
本帖最后由 学习编程中的Ben 于 2023-8-4 13:49 编辑

在您提供的代码中,出现了一个分号使得错误产生了。
问题出在 for 循环的语句块上。请注意以下代码段:
javafor (int i = 0; i < scores.length; i++);{

在这里,您使用了一个额外的分号将 for 循环的语句块结束了。因此,后面的代码块不再被视为循环的一部分,导致 scores[i] 中的索引无法识别。

为了解决这个问题,您只需要删除多余的分号,代码如下所示:
for (int i = 0; i < scores.length; i++) {
    double score = sc.nextDouble();
    scores[i] = score;
}

请重新运行代码,这次应该不会再出现索引变红的错误了。祝您编写愉快!

如果回答对你有帮助,请给我一个最佳答案!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-8-4 13:40:26 | 显示全部楼层
这个问题是因为在你的代码中有一个多余的分号导致的。

在for循环的第一行,你多加了一个分号,这会导致循环体为空,而后面的代码会在循环结束后执行。因此,当你尝试访问scores[ i]时,编译器会报错找不到符号,因为循环已经结束,i不再是有效的索引。

要解决这个问题,只需将第12行的分号删除即可。修改后的代码如下:
import java.util.Scanner;

public class ArrayDemo4 {
    public static void main(String[] args) {
        double[] scores = new double[6];
        Scanner sc = new Scanner(System.in);
        for (int i = 0; i < scores.length; i++) {
            double score = sc.nextDouble();
            scores[ i] = score;
        }
        double sum = 0;
        for (int i = 0; i < scores.length; i++) {
            sum += scores[ i];
        }
        System.out.println("AS is:" + sum/scores.length);
    }
}

请注意,这个问题是一个常见的错误,当你在编写代码时,务必要注意语法和标点符号的正确使用。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-8-4 13:40:28 | 显示全部楼层
本帖最后由 Mike_python小 于 2023-8-4 10:56 编辑

问题:为什么在第12行的scores[i]出现红色下划线?

在你的代码中,第12行的scores[i]出现红色下划线是由于在for循环语句中多了一个分号(;)导致的。

以下是修正后的代码:
import java.util.Scanner;

public class ArrayDemo4 {
    public static void main(String[] args) {
        double[] scores = new double[6];
        Scanner sc = new Scanner(System.in);
        for (int i = 0; i < scores.length; i++) { // 移除多余的分号
            double score = sc.nextDouble();
            scores[i] = score;
        }
        double sum = 0;
        for (int i = 0; i < scores.length; i++) {
            sum += scores[i];
        }
        System.out.println("AS is:" + sum/scores.length);
    }
}

请注意,原始代码中的for循环的结尾有一个分号(;),这会导致循环体为空。因此,下面的代码块被视为独立的代码块,与for循环无关。这就解释了为什么在scores[i]上显示找不到符号的错误。

修正后的代码已经移除了额外的分号,现在for循环正常执行,不再出现红色下划线。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-8-4 13:40:29 | 显示全部楼层
在你提供的代码中,出现了一个导致索引错误的小错误。问题出在第8行的循环体后面多了一个分号 ;,导致循环失去了作用,而后面的代码块 {double score = sc.nextDouble();scores[ i] = score;} 单独成为了一个独立的代码段。这会导致编译器无法找到 i 的定义,从而报错 "找不到符号"。

要解决这个问题,你只需要删除掉第8行循环体后面的那个分号 ; 即可。修改后的代码如下所示:
import java.util.Scanner;

public class ArrayDemo4 {
    public static void main(String[] args) {
        double[] scores = new double[6];
        Scanner sc = new Scanner(System.in);

        for (int i = 0; i < scores.length; i++) {
            double score = sc.nextDouble();
            scores[ i] = score;
        }

        double sum = 0;
        for (int i = 0; i < scores.length; i++) {
            sum += scores[ i];
        }

        System.out.println("AS is: " + sum/scores.length);
    }
}

请注意,在修复了分号错误后,我还添加了对最后一行 System.out.println 语句的修改,将字符串连接符后的空格补上,以保持代码格式的一致性。

修复以上问题后,你应该不再遇到索引变红的问题,并且代码能够正确执行。希望能对你有所帮助!
如果问题已经解决,请设置最佳答案
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-8-4 13:41:12 | 显示全部楼层
学习编程中的Ben 发表于 2023-8-4 13:40
在您提供的代码中,出现了一个分号使得错误产生了。
问题出在 for 循环的语句块上。请注意以下代码段:
[/c ...

还说自己写的脚本,bug出来跟mike的一毛一样
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-8-4 13:48:26 | 显示全部楼层
tyh小号 发表于 2023-8-4 13:41
还说自己写的脚本,bug出来跟mike的一毛一样

我和mike的代码一样的
你可以问他
我们两一起改的

评分

参与人数 1荣誉 +1 收起 理由
tyh小号 + 1

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-8-4 13:48:58 | 显示全部楼层
学习编程中的Ben 发表于 2023-8-4 13:48
我和mike的代码一样的
你可以问他
我们两一起改的

那你还是改一下正则表达式吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-8-4 13:49:25 | 显示全部楼层
tyh小号 发表于 2023-8-4 13:48
那你还是改一下正则表达式吧


我们的正则没加Java

评分

参与人数 1荣誉 +2 收起 理由
tyh小号 + 2

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-8-4 13:53:42 | 显示全部楼层
给个最佳答案呗!求你了!!!

评分

参与人数 1荣誉 +2 收起 理由
tyh小号 + 2

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-8-4 13:56:09 | 显示全部楼层
对于楼上这种不要脸行为,尽量不要给与最佳答案
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-8-4 14:22:28 | 显示全部楼层
感谢各位啦 最佳就先到先得了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-28 05:59

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表