初学者编码器。我试图区分用户输入值并且不输入值。
当用户没有输入指定值时,整数变量= 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计算他们的百分比。
那么我怎么能更具体,能够区分缺失输入和实际输入?
我希望零作为实际成绩而不是缺失输入。
答案 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
}