为什么System.out.println没有提供任何输出?

时间:2018-02-27 21:16:35

标签: java system.out

我写了一个简单的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]);
    }
  }
}

2 个答案:

答案 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]);
   }

 }
}