【问题标题】:Java not outputting or requesting keyboard inputJava 不输出或请求键盘输入
【发布时间】:2017-04-13 04:42:51
【问题描述】:

我无法让我的 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);
    }

}
}

我似乎无法让它工作。我确定我遗漏了一些明显的东西。如果我能得到一些建议,我将非常感激。

【问题讨论】:

  • 把课尾的东西{ Scanner ... }放到它所属的main
  • public static void main(String [ ] args){} 只是执行...没有:-)

标签: java class main


【解决方案1】:

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

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

接受输入并在控制台上打印它没有任何调用代码。它只是代码块的内部。我只是将它移到 ma​​in 方法中,它就起作用了。

【讨论】:

  • 谢谢!感谢您的帮助。
  • @A.Duffy,如果我的回答解决了您的疑问,请不要忘记投票并接受社区的答案。
猜你喜欢
  • 1970-01-01
  • 2011-06-16
  • 1970-01-01
  • 1970-01-01
  • 2011-08-20
  • 2011-02-14
  • 1970-01-01
  • 2011-10-19
  • 2013-11-29
相关资源
最近更新 更多