Эта программа предложит пользователю ввести среду (воздух, вода или сталь) и расстояние. Затем рассчитайте расстояние, которое звуковая волна пройдет через среду.
Я написал всю программу, но не прочитал последнюю часть, которую мой профессор добавил к домашней задаче, а именно к следующему абзацу. Теперь я застрял, потому что я не совсем уверен, как добавить это в мою программу. Я использовал оператор if, но, может быть, я могу добавить его в один?
Программа запрашивает носитель с помощью: «Введите одно из следующего: воздух, вода или сталь:» и считывает носитель. Если среда не воздух, вода или сталь, программа напечатает сообщение: «Извините, вы должны войти в воздух, воду или сталь» и ничего больше. В противном случае программа запрашивает следующий ввод расстояния.
Я попробовал цикл while
и добавил еще один оператор if
, но на самом деле моя проблема в синтаксисе. Потому что мне никогда не приходилось указывать пользователю вводить конкретные строки.
public class SpeedOfSound {
public static void main(String[] args) {
double distance;
double time;
Scanner keyboard = new Scanner(System.in);
//prompt the user to enter the medium through which sound will
System.out.print("Enter one of the following: air, water, or steel:");
String input;
input = keyboard.nextLine();
// prompt the user to enter a distance
System.out.print("Enter distance in feet: ");
distance = keyboard.nextDouble();
// determine if medium is air, water, steele and calculate
if (input.equals("air")) {
time = (distance / 1100);
System.out.println("The total time traveled is " + time + " feet per second.");
}
else if (input.equals("water"))
{
time = (distance / 4900);
System.out.println("The total time traveled is " + time + " feet per second.");
}
else if (input.equals("steel"))
{
time = (distance / 16400);
System.out.println("The total time traveled is " + time + " feet per second.");
}
}
}
Мой ожидаемый результат - заставить пользователя печатать только воздух, воду или сталь.