создание команд с помощью java и пользовательского ввода - PullRequest
0 голосов
/ 28 мая 2020

Я делаю программу магазина mov ie, и я застрял в том, как создавать такие команды, как покупка Mov ie или info Mov ie

import java.util.Scanner;
import java.util.concurrent.TimeUnit;
import java.util.ArrayList;

public class Pricing {

     // TEST
static double Cost;
String DieHard_Name;
String DieHard_Info;
static double DieHard_Price = 6.99;
static boolean DieHard_incart;
// Test

static Scanner scan = new Scanner(System.in);

public static void main(String[] args) throws InterruptedException{



    // Start of the program
            ArrayList<String> Genre = new ArrayList<String>();
            Genre.add("Action");
            Genre.add("Horror");
            Genre.add("Documentary");

            System.out.println("Welcome to the movie store Please type the genre of movie you would like to"
                    + " browse");  
            System.out.println("Type 'Help' in the console for assistance");
            Genre.forEach(System.out::println); 



    // ArrayList for the action movies
    ArrayList<String> Action = new ArrayList<String>();
    Action.add("Die Hard");
    Action.add("Top Gun");
    Action.add("Whitehouse Down");
    Action.add("The Gentlemen");
    Action.add("Mission impossible");
    Action.add("John Wick");
    Action.add("Atomic Blonde");
    Action.add("Inception");
    Action.add("The Matrix");
    Action.add("Speed");

    // ArrayList for the Horror movies
    ArrayList<String> Horror = new ArrayList<String>();
    Horror.add("Us");
    Horror.add("It Chapter 2");
    Horror.add("Get Out");
    Horror.add("The Interior");
    Horror.add("It follows");
    Horror.add("The Ring");
    Horror.add("The Shinning");
    Horror.add("Scream");
    Horror.add("Alien");
    Horror.add("Nightmare on Elm Street");

    // ArrayList for Documentaries
    ArrayList<String> Documentary = new ArrayList<String>();
    Documentary.add("Free Solo");
    Documentary.add("13th");
    Documentary.add("Fyre");
    Documentary.add("Honeyland");
    Documentary.add("Strong Island");
    Documentary.add("Abducted in plain sight");
    Documentary.add("Man on Wire");
    Documentary.add("How to Survive a Plague");

    ArrayList<String> Help_pls = new ArrayList<String>();
    Help_pls.add("");



     // If the input doesn't match one of the options a "please try again message appears"

     String chooseGenre;
     Boolean isProgramRunning = true;

     while (isProgramRunning) {

         chooseGenre = scan.next();
        /* System.out.println("Loading."); 
         TimeUnit.SECONDS.sleep(1);
         System.out.println("Loading.."); 
         TimeUnit.SECONDS.sleep(1);
         System.out.println("Loading..."); 
         TimeUnit.SECONDS.sleep(1); */

         switch(chooseGenre) {
              case "Horror" :
                 System.out.println("you chose: Horror!"); 
                 Horror.forEach(System.out::println);
                 break;
              case "Action" :
                  System.out.println("you chose: Action!");
                  Action.forEach(System.out::println);
                 break;
              case "Documentary" :
                  System.out.println("you chose: Documentary!");
                  Documentary.forEach(System.out::println);
                  break;
              case "Help" :
                  System.out.println("You chose: Help");
                  Help_pls.forEach(System.out::println);

                  // THIS HERE
              case "Buy Die hard " :
                  if (DieHard_incart = false) {
                     System.out.println("Selected buy: Die hard "); 
                     Cost = 0 + DieHard_Price;
                     DieHard_incart = true ;
                  } else {
                      System.out.println("This movie is allready in your cart");
                  }
                     break;




              case "Exit":
                  isProgramRunning = false;
                  System.out.println("Program terminated");
                  break;
              default :
                 System.out.println("Please enter a Movie genre or usable command");
                 break;
           }

     }//ndloop

} //end 

  }

Когда я нажимаю Buy D ie, он трижды выдает мне команду «Введите жанр Mov ie или пригодную для использования команду». Я не знаю, сработает ли использование операторов switch все время или заставит мою программу работать медленно

есть ли способ исправить это или более простой способ выполнить sh это?

1 Ответ

0 голосов
/ 28 мая 2020

chooseGenre = scan.next() необходимо изменить на chooseGenre = scan.nextLine(), если вы хотите анализировать текст с пробелами в нем.

«Пожалуйста, введите жанр Mov ie или используемую команду» отображается 3 раза, потому что команда, которую вы отправили в приложение, состоит из 3 слов, разделенных двумя пробелами.

...