Возможно, это не лучшее решение, но я думаю, что это довольно c графическое объяснение полезности функции scanner
в Java.
Просто скопируйте и вставьте это в main
область вашего кода:
public static void main(String[] args) {
TempConversion temp = new TempConversion();
temp.celsiusToFahrenheit(38);
temp.celsiusToKelvin(0);
Double number;
String input;
String output;
Scanner sc = new Scanner(System.in);
System.out.println("Input a number, only double allowed");
number = sc.nextDouble();
sc.nextLine();
System.out
.println("Input the first letter of the source unit. c for celsius, f for fahrenheit or k for kelvin");
input = sc.nextLine();
System.out
.println("Input the first letter of the target unit. c for celsius, f for fahrenheit or k for kelvin");
output = sc.nextLine();
if (input.equals("c")) {
if (output.equals("k")) {
temp.celsiusToKelvin(number);
} else if (output.equals("f")) {
temp.celsiusToFahrenheit(number);
}
} else if (input.equals("f")) {
if (output.equals("c")) {
temp.fahrenheitToCelsius(number);
} else {
temp.fahrenheitToKelvin(number);
}
} else {
if (output.equals("c")) {
temp.kelvinToCelsius(number);
} else {
temp.kelvinToFahrenheit(number);
}
}
sc.close();
}
О том, как Scanner
на самом деле работает Это очень легко узнать в inte rnet, но как только вы объявите объект Scanner
, появится нет необходимости объявлять новый Scanner
каждый раз, когда вы хотите сохранить ввод для чего-то еще, так же, как это было сделано выше, вы можете просто повторно использовать его много раз, когда захотите. от одного объекта к другому (в этой проблеме заключается в сохранении двойника, а теперь нам нужна строка) вам необходимо очистить буфер (вот оно, sc.nextLine();
предложение).
И после всего этого, не забудьте закрыть сканер. Это не обязательно, но если нет, вы получите «предупреждение» или что-то в этом роде.