Java不输出或请求键盘输入

问题描述:

我无法让我的java代码正确输出所需的结果。更不用说我的System.out.Println没有提示输入。我所有的代码都很好,没有错误。然而,它似乎并不输出任何内容或请求输入。Java不输出或请求键盘输入

//Author Adam Duffy 
package test1; 

import java.util.Scanner; 

public class Employee { 
public static void main(String [ ] args){} 
public String DEF_EMP_NUM = "NO_EMP_NUM"; 
public double DEF_RATE_PER_HOUR = 20.0; 
public double DEF_OVER_TIME_RATE = 40.0; 
public double DEF_RATE_HOURS_PER_WEEK = 1.5; 

private String empNum; 
private double ratePerHour; 
private double baseHrsPerWeek; 
private double overTimeRate; 
// no arg constructor setting width and length to default of 1 

public Employee() { 
    empNum = DEF_EMP_NUM; 
    ratePerHour = DEF_RATE_PER_HOUR; 
    baseHrsPerWeek = DEF_RATE_HOURS_PER_WEEK; 
    overTimeRate = DEF_OVER_TIME_RATE; 
} 
// all arg constructor 

public Employee(String empNum, float ratePerHour, float baseHrsPerWeek, int overTimeRate) { 
    this.empNum = empNum; 
    this.ratePerHour = ratePerHour; 
    this.baseHrsPerWeek = baseHrsPerWeek; 
    this.overTimeRate = overTimeRate; 

} 

//setters 
public void setempNum(String empNum) { 
    this.empNum = empNum; 

} 

public String getempNum() { 
    return this.empNum; 
} 
//methods 

public double getratePerHour() { 
    return ratePerHour; 
} 

public void setratePerHour(float ratePerHour) { 
    this.ratePerHour = ratePerHour; 
} 

public double getoverTimeRate() { 
    return overTimeRate; 
} 

public int setoverTimeRate(int overTimeRate) { 
    this.overTimeRate = overTimeRate; 
    return overTimeRate; 
} 

public double getbaseHrsPerWeek() { 
    return baseHrsPerWeek; 
} 

public void setbaseHrsPerWeek(float baseHrsPerWeek) { 
    this.baseHrsPerWeek = baseHrsPerWeek; 
} 

@Override 
public String toString() { 
    return super.toString() 
      + "\n[" 
      + "\nbaseHrsPerWeek = " + baseHrsPerWeek 
      + "\noverTimeRate = " + overTimeRate 
      + "\nratePerHour = " + ratePerHour 
      + "\nempNum = " + empNum 
      + "\n]"; 
} 

public double calcWeeksPay(int hours) { 
    return this.ratePerHour * this.baseHrsPerWeek; 
    /*@param hours 
    @return 
    */ 

} 

{ 
    Scanner scan = new Scanner(System.in); 


    int myNum[] = new int[5]; 
    int i; 
    int sum = 0; 
    for (i = 0; i < myNum.length; i++) { 
     System.out.print("Enter the number " + (i + 1) + " : "); 
     myNum[i] = scan.nextInt(); 
    } 

    for (i = 0; i < myNum.length; i++) { 
     System.out.print("The number " + (i + 1) + " : "); 
     System.out.print(myNum[i] + "\n+"); 

     for (int e = 1; e <= i; e++) { 
      sum = sum + e; 
     } 
     System.out.println(sum); 
    } 

} 
} 

我只是似乎无法得到它的工作。我确定我错过了一些明显的东西。如果我能得到一些建议,我会非常感激。

+1

把类'{Scanner ...}'末尾的东西放在它所属的'main'中 – MadProgrammer

+0

public static void main(String [] args){}只是执行... nothing: - ) – bestprogrammerintheworld

更新peice代码,它将接受并打印在控制台上的数字。

public class Employee { 
public static void main(String [ ] args){ 
    Scanner scan = new Scanner(System.in); 
    int myNum[] = new int[5]; 
    int i; 
    int sum = 0; 
    for (i = 0; i < myNum.length; i++) { 
     System.out.print("Enter the number " + (i + 1) + " : "); 
     myNum[i] = scan.nextInt(); 
    } 

    for (i = 0; i < myNum.length; i++) { 
     System.out.print("The number " + (i + 1) + " : "); 
     System.out.print(myNum[i] + "\n+"); 

     for (int e = 1; e <= i; e++) { 
      sum = sum + e; 
     } 
     System.out.println(sum); 
    } 

} 
public String DEF_EMP_NUM = "NO_EMP_NUM"; 
public double DEF_RATE_PER_HOUR = 20.0; 
public double DEF_OVER_TIME_RATE = 40.0; 
public double DEF_RATE_HOURS_PER_WEEK = 1.5; 

private String empNum; 
private double ratePerHour; 
private double baseHrsPerWeek; 
private double overTimeRate; 

//无参数构造设置的宽度和长度为默认的1种

public Employee() { 
    empNum = DEF_EMP_NUM; 
    ratePerHour = DEF_RATE_PER_HOUR; 
    baseHrsPerWeek = DEF_RATE_HOURS_PER_WEEK; 
    overTimeRate = DEF_OVER_TIME_RATE; 
} 

//所有参数构造

public Employee(String empNum, float ratePerHour, float baseHrsPerWeek, int overTimeRate) { 
    this.empNum = empNum; 
    this.ratePerHour = ratePerHour; 
    this.baseHrsPerWeek = baseHrsPerWeek; 
    this.overTimeRate = overTimeRate; 

} 

//setters 
public void setempNum(String empNum) { 
    this.empNum = empNum; 

} 

public String getempNum() { 
    return this.empNum; 
} 

//方法

public double getratePerHour() { 
    return ratePerHour; 
} 

public void setratePerHour(float ratePerHour) { 
    this.ratePerHour = ratePerHour; 
} 

public double getoverTimeRate() { 
    return overTimeRate; 
} 

public int setoverTimeRate(int overTimeRate) { 
    this.overTimeRate = overTimeRate; 
    return overTimeRate; 
} 

public double getbaseHrsPerWeek() { 
    return baseHrsPerWeek; 
} 

public void setbaseHrsPerWeek(float baseHrsPerWeek) { 
    this.baseHrsPerWeek = baseHrsPerWeek; 
} 

@Override 
public String toString() { 
    return super.toString() 
      + "\n[" 
      + "\nbaseHrsPerWeek = " + baseHrsPerWeek 
      + "\noverTimeRate = " + overTimeRate 
      + "\nratePerHour = " + ratePerHour 
      + "\nempNum = " + empNum 
      + "\n]"; 
} 

public double calcWeeksPay(int hours) { 
    return this.ratePerHour * this.baseHrsPerWeek; 
/*@param hours 
@return 
*/ 
} 
} 

问题是你不是哈维纳克任何在PSVM方法和下面的代码段

Scanner scan = new Scanner(System.in); 
     int myNum[] = new int[5]; 
     int i; 
     int sum = 0; 
     for (i = 0; i < myNum.length; i++) { 
      System.out.print("Enter the number " + (i + 1) + " : "); 
      myNum[i] = scan.nextInt(); 
     } 

     for (i = 0; i < myNum.length; i++) { 
      System.out.print("The number " + (i + 1) + " : "); 
      System.out.print(myNum[i] + "\n+"); 

      for (int e = 1; e <= i; e++) { 
       sum = sum + e; 
      } 
      System.out.println(sum); 
     } 

它接受输入并将其打印在控制台不具有任何调用代码。它只是代码块的一部分。我只是将其移动到主要的方法中,它工作。

+0

谢谢!我很感激帮助。 –

+0

@ A.Duffy,如果我的答案解决了您的问题,请不要忘记为社区注册并接受答案。 –