区分“空白输入”并将零值作为实际输入

时间:2016-09-16 22:21:04

标签: java if-statement

初学者编码器。我试图区分用户输入值并且不输入值。

当用户没有输入指定值时,整数变量= 0。

但是如果用户输入0作为他们的变量,我需要它是不同的。

if(exam1Input == 0){
    exam1Per = 0;}
if(exam2Input == 0){
    exam2Per = 0;}
if(finalExamInput == 0){
    finalExamPer = 0;}
if(labsInput == 0){
    labsPer = 0;}
if(projectsInput == 0){
    projectsPer = 0;}
if(quizzesInput == 0){
    quizzesPer = 0;}
if(attendanceInput == 0){
    attendancePer = 0;}

我做了这个multibranch if语句,如果输入为零(即根本没有输入),则将百分比等级权重的值转换为零。

但是我遇到了用户输入“0”作为实际等级的问题。我不能让百分比权重为0,我仍然需要它是一定的等级百分比。

e.g。如果他们的测试平均值为0,我仍然需要根据等级0计算他们的百分比。

那么我怎么能更具体,能够区分缺失输入和实际输入?

我希望零作为实际成绩而不是缺失输入。

2 个答案:

答案 0 :(得分:1)

一个简单的解决方案是使用不同的默认值,这将是用户无效的输入。 e.g:

static final int NO_INPUT = -1;

int exam1Input = NO_INPUT;

/**Prompt the user for input somewhere around here*/

if(exam1Input == 0) ...

现在,如果用户明确地将其设为0,则exam1Input将仅为0,否则为-1。

答案 1 :(得分:1)

或者,使用OptionalInt而不是int。这种情况就是它们的用途。

OptionalInt input = OptionalInt.empty();
// input = Optional.of(someValue); if set
If (input.isPresent()) {
    int i = input.getAsInt();
    // use the value
}