Я хотел бы задать вопрос о моем коде.Сканер Java, требующий нескольких входов
Прошу прощения за неэффективность и беспорядок, я все еще пытаюсь изучить java.
System.out.println("Please choose the number corresponding to the operation: ");
System.out.println("1 for add,2 for subtract,3 for multiply, 4 for divide, 5 for print, and 6 for exit: ");
if (sc.nextInt() == 5) {
System.out.println("Your first fraction is: " + num1 + "/" + denom1 + " or in decimal: " + ((float) num1/denom1));
System.out.println("Your second fraction is: " + num2 + "/" + denom2 + " or in decimal: " + ((float) num2/denom2));
} else if (sc.nextInt() == 3) {
System.out.println("Multiply: " + (num1 * num2) + "/" + (denom1 * denom2));
} else if (sc.nextInt() == 4) {
System.out.println("Divide: " + (num1 * denom2) + "/" + (denom1 * num1));
} else if (sc.nextInt() == 1) {
int d = denom1 * denom2;
int n1 = num1 * denom2;
int n2 = num2 * denom1;
System.out.println("Addition: " + (n1 + n2) + "/" + d);
} else if (sc.nextInt() == 2) {
int d = denom1 * denom2;
int n1 = num1 * denom2;
int n2 = num2 * denom1;
System.out.println("Subtract: " + (n1 - n2) + "/" + d);
}
else if (sc.nextInt() == 6) {
System.exit(0);
}
}
}
Когда я запускаю программу, то первое, если оператор получает штраф, как я только ввести номер 5 один раз. Однако, как вы можете видеть из второго, если оператор, который является номером 3, требует двух входов, я должен ввести его два раза до появления следующей строки. Третий другой оператор if, который является номером 4, требует 3 ввода до появления следующей строки и т. Д. С каждым последующим else if. Простите, если я не объясню это правильно, Кто-нибудь может понять, почему это происходит?
большое вам спасибо! и да, я буду помнить об этом в следующий раз, когда ура! –