我有问题。我的任务是编写一个Java程序,使用数组方法,接收5名学生的标记,然后查找并显示获得A级的学生人数。标记为(60,56,78,99,92.5)。获得A级所需的标准是80分及以上。
我的代码中的所有内容都很顺利,除了最后一个声明: System.out.println("学生人数" +计数);
这是我的代码:
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(&#34;学生人数&#34; +计数);
我收到了一个错误:
线程中的异常&#34; main&#34; java.lang.RuntimeException:无法编译 源代码 - 错误的树类型:
有没有人可以解释和纠正我的错误? :d
答案 0 :(得分:1)
您在count
循环中错误地声明了for
。因此,它不能在循环外访问(因此编译错误),此外,它在循环的每次迭代中被覆盖为0,这意味着它将始终具有0或1的值(在退出循环之前),而不是正确的计数。
将它移到循环外:
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 :(得分:0)
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赋给您的计数。把它放在循环之上。
答案 2 :(得分:0)
您已在循环中声明并初始化 count 变量。因此,您无法访问for循环之外的 count 变量。每次当循环继续时,count变量将分配给0.这是你已经完成的两个错误。
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变量。