2015-09-24 4 views
-3
  • Используйте инструкцию switch для реализации меню. Позвольте пользователю вводить правильные буквы верхнего и нижнего регистра (например, AIR или воздух или воздух или aiR и т. Д.). Если пользователь вводит неверный выбор, ваша программа должна сообщить им, а затем выйти.
  • Ответы на воздух, воду и сталь должны использовать printf. Отобразить воздух до 3 знаков после запятой, до 4 знаков после запятой и до 5 знаков после запятой.
  • После того, как пользователь входит в дистанцию, звуковая волна должна двигаться, но перед использованием номера в вычислении подтвердите его. Если расстояние меньше нуля или больше 10000, отобразите сообщение об ошибке и не выполните дальнейшую обработку, т.е. выйдите. Зафиксируйте оператор switch (меню - см. Выше) в этом выражении if.
import java.util.Scanner; 

    public class SpeedSound 
    { 
    public static void main(String[] args) 
    { 
     String input;  
     double distance; 
     double time; 
     final double AIR = 1/1100; 
     final double WATER = 1/4900; 
     final double STEEL = 1/16400; 

     Scanner kyb = new Scanner(System.in); 

     System.out.print("Enter the corresponding medium:\n "); 
     System.out.println("Air\n "); 
     System.out.println("Water\n "); 
     System.out.println("Steel\n "); 
     input = kyb.nextLine(); 

     System.out.print("Enter the distance: "); 
     distance = kyb.nextDouble(); 

     if (distance < 0 || distance > 10000) 
      System.out.print("Error: "); 

      switch (input) 
      { 
       case "Air": 
       case "AIR": 
       time = (distance/1100); 
      System.out.println("The total time traveled is " + time + "seconds."); 
     break; 

     case "Water": 
     case "WATER": 
     time = (distance/4900); 
     System.out.println("The total time traveled is " + time + "seconds."); 
     break; 

     case "Steel": 
     case "STEEL": 
     time = (distance/16400); 
     System.out.println("The total time traveled is " + time + "seconds."); 
     break; 

     } 
    } 
    } 

ответ

-1

Разрешить пользователю ввести правильные верхние/строчные буквы (т.е. воздух или воздух или воздух или воздух и т.д.)

Как нужно обрабатывать все версии на lower/upper случай входа. Просто преобразуйте строку в lower case, прежде чем перейти к switch case, а затем определите там только строчные операторы case вместо нескольких операторов.

intput = input.toLowerCase(); // this is not require if you have converted it earlier 
switch (input) { 
case "air": 

Если пользователь вводит неверный выбор ваша программа должна сказать им, а затем выйти.

Вы можете использовать if condition и выхода пользователя:

input = kyb.nextLine().toLowerCase(); 

if (! (input.equals("air") || input.equals("water") || input.equals("steel"))) { 
    System.out.println("Invalid input. Exit"); 
    return; 
} 

Если расстояние меньше нуля или больше, чем 10000, отобразить сообщение об ошибке и не делать никаких дальнейших обработки, т.е. выход.

if (distance < 0 || distance > 10000) { 
     System.out.print("Error: "); 
     return; 
    } 
+0

Спасибо, я понимаю, что вы имеете в виду, но оператор if должен проверять расстояние, которое я ввел, если мое расстояние <0 or > 10000 должно отображать сообщение об ошибке, любое число внутри от 0 до 10000 должно вычисляться в зависимости от ввода i pick. оператор переключения должен иметь расчет ввода (воздух, вода и сталь). мой код компилируется, но когда я пытаюсь ввести расстояние, он перестает компилировать. – Gen

+0

Также мне разрешено использовать только одну инструкцию if, а в ней внутри оператора switch. Заранее благодарю – Gen

+0

'Если пользователь вводит неверный выбор, ваша программа должна сообщить им, а затем выйти.' Вам понадобится один, если для этого и другой для ввода «расстояние». – YoungHobbit

0

отступы не имеют значения для Java, использовать блок с помощью {} скобок, в противном случае он будет только выполнить следующую инструкцию.

if (condition) { 
// .. lots of 
// .. lines of 
// .. code 


} 
+0

я также попробовал, что и раньше, но он не работает таким образом, что предполагают, чтобы. – Gen

Смежные вопросы