我写了一个简单的java程序,但它没有给出任何输出。 它只需要进行数组输入然后打印它,但在运行程序时它不会产生任何输出,它也消耗60 MB的内存。
import java.util.*;
public class TestClass {
public static void main(String[] args) {
Election obj = new Election();
obj.getVotes();
obj.displayResult();
}
}
class Election
{
int num;
int[] votes=new int[num];
void getVotes()
{
Scanner sc=new Scanner(System.in);
num=sc.nextInt();
//for(int i:votes)
for(int i=0;i<votes.length;i++)
votes[i]=sc.nextInt();
}
void displayResult()
{
//for(int i:votes)
for(int i=0;i<votes.length;i++)
{
System.out.println(votes[i]);
}
}
}
答案 0 :(得分:4)
此:
int num;
int[] votes=new int[num];
创建一个包含0个元素的数组。此代码位于getVotes()
:
Scanner sc=new Scanner(System.in);
num=sc.nextInt();
不会调整实例化Election
类时创建的数组的大小。
所以在displayResult()
中你有一个空的votes
数组,因此没有输出。
答案 1 :(得分:0)
你只需给你创建的数组一个长度。下面是相同的代码,但我已初步化votes array with a lentgh of 5
看下面
public class testClass {
public static void main(String[] args) {
Election obj = new Election();
obj.getVotes();
obj.displayResult();
}
}
class Election
{
int num=5;
int[] votes=new int[num];
void getVotes()
{
Scanner sc=new Scanner(System.in);
// num=sc.nextInt();
//for(int i:votes)
for(int i=0;i<votes.length;i++){
votes[i]=sc.nextInt();
}
}
void displayResult()
{
//for(int i:votes)
for(int i=0;i < votes.length;i++)
{
System.out.println("the result " +votes[i]);
}
}
}