Java不输出或请求键盘输入

时间:2017-04-13 04:42:51

标签: java class main

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

//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 个答案:

答案 0 :(得分:2)

更新了代码,它将在控制台上接受并打印该号码。

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;

//没有arg构造函数设置宽度和长度默认为1

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

//所有arg构造函数

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);
        }

获取输入并在控制台上打印它没有任何调用代码。它只是代码块内部。我只是将它移到了方法中并且它有效。