我正在制作一个电影商店程序,但我不知道如何制作诸如购买电影或信息电影之类的命令
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 Die Hard 时,它给了我三次“请输入电影类型或可用命令” 我不知道一直使用 switch 语句是否有效,或者是否会使我的程序运行缓慢
有没有办法可以解决这个问题,或者有更简单的方法来实现这个问题?
最佳答案
如果您想解析包含空格的文本,则必须将
chooseGenre = scan.next()
更改为 chooseGenre = scan.nextLine()
。
“请输入电影类型或可用命令”出现 3 次,因为您发送到应用程序的命令包含由 2 个空格分隔的 3 个单词。
关于java - 使用 java 和用户输入编写命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62053064/