2017-04-13 54 views
3

我無法讓我的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

回答

2

更新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,如果我的答案解決了您的問題,請不要忘記爲社區註冊並接受答案。 –