首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >#救命。Java代码,获取5名学生的分数,并使用数组方法显示获得A的学生

#救命。Java代码,获取5名学生的分数,并使用数组方法显示获得A的学生
EN

Stack Overflow用户
提问于 2017-06-25 09:39:05
回答 3查看 1.4K关注 0票数 0

我有个问题。我的任务是编写一个Java程序,使用数组方法,接收5名学生的分数,然后查找并显示获得A级的学生人数。分数为(60,56,78,99,92.5)。取得A级所需的标准是80分以上。

我代码中的所有内容都进行得很好,除了最后一条语句:System.out.println(“学生数量”+计数);

这是我的密码:

代码语言:javascript
运行
复制
import javax.swing.JOptionPane;

public class Q2 {

 public static void main(String [] args) {

    double[] marks = new double[6];
    int numbers = 1;

    // This is for asking input
    for (int i = 0; i < marks.length; i++,numbers++) {
        String marksString = JOptionPane.showInputDialog (null,
                "Enter the marks for student "+numbers+": ");

        marks[i] = Double.parseDouble(marksString);

        int count = 0;
        if(marks[i] >= 80.0) {
            count++;
        }
    }
    System.out.println("The number of students "+count); 
 }

}

我代码中的所有内容都进行得很好,除了最后一条语句:System.out.println(“学生数量”+计数);

我收到一个错误:

线程"main“java.lang.RuntimeException中的异常:不可编译的源代码-错误树类型:

有谁能解释和纠正我的错误吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-06-25 09:41:10

您在count循环中错误地声明了for。因此,它在循环之外是不可访问的(因此产生编译错误),此外,它在循环的每次迭代中都被覆盖到0,这意味着它的值总是为0或1(在退出循环之前),而不是正确的计数。

将它移出循环之外:

代码语言:javascript
运行
复制
double[] marks = new double[6];
int numbers = 1;
int count = 0;
// This is for asking input
for (int i = 0; i < marks.length; i++,numbers++) {
  String marksString = JOptionPane.showInputDialog (null,
      "Enter the marks for student "+numbers+": ");
  marks[i] = Double.parseDouble(marksString);
  if(marks[i] >= 80.0) {
    count++;
  }
}
System.out.println("The number of students who got A is " + count); 
票数 1
EN

Stack Overflow用户

发布于 2017-06-25 09:53:27

代码语言:javascript
运行
复制
public class Q2 {

public static void main(String [] args) {

double[] marks = new double[6];
int numbers = 1;
int count = 0;

// This is for asking input
for (int i = 0; i < marks.length; i++,numbers++) {
    String marksString = JOptionPane.showInputDialog (null,
            "Enter the marks for student "+numbers+": ");

    marks[i] = Double.parseDouble(marksString);

    if(marks[i] >= 80.0) {
        count++;
    }
}
System.out.println("The number of students "+count); 
}

}

您的错误是在循环中初始化计数,在每次迭代过程中,编译器都会将0赋值给计数。把它放在循环上面。

票数 0
EN

Stack Overflow用户

发布于 2017-06-25 17:42:12

您已经声明并初始化了 count 变量在loop.As中,每次循环进行时,计数变量都会分配给0,这将导致您无法访问loop.And之外的count变量。这是您已经完成的两个错误。

代码语言:javascript
运行
复制
import javax.swing.JOptionPane;

public class Demo {

public static void main(String [] args) {

double[] marks = new double[6];
int numbers = 1;
int count=0;
// This is for asking input
for (int i = 0; i < marks.length; i++,numbers++) {
    String marksString = JOptionPane.showInputDialog (null,
            "Enter the marks for student "+numbers+": ");

    marks[i] = Double.parseDouble(marksString);

    //int count = 0;
    if(marks[i] >= 80.0) {
        count++;
    }
  }
 System.out.println("The number of students "+count); 
 }

  } 

您应该在for循环之外声明count变量。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44745061

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档