Java编程(数组和循环)

Java编程(数组和循环),java,arrays,Java,Arrays,基本编程概念 实验室9–阵列 编写电影院预订程序,允许客户预订电影院座位。在节目开始时,要求客户输入姓名并显示自定义问候语。预订座位后,应将其标记为“**”。如果客户选择了其他客户已预订的座位,则显示一条消息通知客户并建议下一个可用座位。 样本输出: 嗨,你叫什么名字? 艾米 欢迎你,艾米 电影院1座位计划 00 01 02 03 04 05 06 07 08 09 1011121314 1516171819 20 21 22 23 24 25 26 27 28 29 你想要哪个座位? 二十

基本编程概念 实验室9–阵列 编写电影院预订程序,允许客户预订电影院座位。在节目开始时,要求客户输入姓名并显示自定义问候语。预订座位后,应将其标记为“**”。如果客户选择了其他客户已预订的座位,则显示一条消息通知客户并建议下一个可用座位。 样本输出:

嗨,你叫什么名字? 艾米

欢迎你,艾米


电影院1座位计划


00 01 02 03 04
05 06 07 08 09
1011121314
1516171819
20 21 22 23 24
25 26 27 28 29
你想要哪个座位? 二十一,

您想再预订一次吗?(Y或N)

如果所选座位已被其他人预订,请告知下一个可用座位

现在是代码。代码的问题在于我可能不知道如何将某人的“y”改为布尔值的“true”。为什么编码永远都不容易

import java.util.*;

public class cinema
{

public static void main(String args[])
{
    Scanner input = new Scanner(System.in);

    int booking;
    String name;
    int suggestion = 0;
    boolean check1 = true;
    String check2 = "_";
    String check11 = "_";

    //create array
    final int ARRAY_LENGTH = 30;
    int[] array = new int[ARRAY_LENGTH];

    String[] seats = { "00", "01" , "02" , "03" , "04" , "05" , "06" , "07" , "08" , "09" , "10"
                         , "11" , "12" , "13" , "14" , "15" , "16" , "17" , "18" , "19" , "20" , "21"
                          , "22" , "23" , "24" , "25" , "26" , "27" , "28" , "29"};

    System.out.println("Hi, what is your name?");
    name = input.nextLine();

    System.out.printf("Welcome,%s!\n",name);

    System.out.println("*********************");
    System.out.println("CINEMA 1 SEATING PLAN");
    System.out.println("*********************");

    do{

    for(int a = 0; a < 30; a++ ){
    System.out.printf("%s\t", seats[a]);
    if (a % 5 == 4){
    System.out.printf("\n");
    }
    }
    System.out.println("Which seat do you want?");
    booking = input.nextInt();

    if(seats[booking] == "**"){
        System.out.println("Sorry! Seat taken.");
        for(int b = 0; b < 30; b++){
            if(seats[booking + b] == "**"){
                check2 = seats[booking + b];
            }
            else if(seats[booking - b] == "**"){
                check2 = seats[booking - b];
            }
            else{
            }
        }//end for loop
        System.out.printf("Suggest to take seat:%s\n", check2);
    }//end if

    seats[booking] = "**";

    System.out.println("Would you like to make another booking?(Y or N)");
    check11 = input.nextLine();

    while(check11 == "y"||check11 == "n"){
    if(check11 == "y"){
        check1 = true;
        System.out.print("a");
    }
    else if(check11 == "n"){
        check1 = false;
        System.out.print("b");
    }
    else{
    System.out.println("Would you like to make another booking?(Y or N)");
    check11 = input.nextLine();
    }
    }//end while


    }while(check1);//outer while


}
//end main
}
import java.util.*;
公共影院
{
公共静态void main(字符串参数[])
{
扫描仪输入=新扫描仪(System.in);
国际订票;
字符串名;
int=0;
布尔校验1=真;
字符串检查2=“25;”;
字符串检查11=“25;”;
//创建数组
最终整数数组长度=30;
int[]数组=新的int[array_LENGTH];
字符串[]座位={“00”、“01”、“02”、“03”、“04”、“05”、“06”、“07”、“08”、“09”、“10”
, "11" , "12" , "13" , "14" , "15" , "16" , "17" , "18" , "19" , "20" , "21"
, "22" , "23" , "24" , "25" , "26" , "27" , "28" , "29"};
System.out.println(“你好,你叫什么名字?”);
name=input.nextLine();
System.out.printf(“欢迎,%s!\n”,名称);
System.out.println(“*************************”);
系统输出打印(“电影院1座位计划”);
System.out.println(“*************************”);
做{
对于(int a=0;a<30;a++){
System.out.printf(“%s\t”,seats[a]);
如果(a%5==4){
System.out.printf(“\n”);
}
}
System.out.println(“您想要哪个座位?”);
booking=input.nextInt();
如果(座位[预订]=“**”){
System.out.println(“对不起,有人坐了”);
对于(int b=0;b<30;b++){
如果(座位[预订+b]==“**”){
check2=座位[预订+b];
}
否则如果(座位[预订-b]==“**”){
check2=座位[预订-b];
}
否则{
}
}//循环结束
System.out.printf(“建议就座:%s\n”,勾选2);
}//如果结束
座位[预订]=“**”;
System.out.println(“您想再预订一次吗?(Y或N)”);
check11=input.nextLine();
while(check11==“y”| | check11==“n”){
如果(勾选11=“y”){
检查1=正确;
系统输出打印(“a”);
}
否则如果(勾选11==“n”){
check1=假;
系统输出打印(“b”);
}
否则{
System.out.println(“您想再预订一次吗?(Y或N)”);
check11=input.nextLine();
}
}//结束时
}while(选中1);//外部while
}
//端干管
}
请不要将其标记为重复。它的问题是不同的。 我拿不到电话

“您想再预订一次吗?(Y或N)”

工作。当我的意思是我不能让它工作时,我的意思是程序不会让我有机会进入y或n。真正的问题是check11=input.nextLine();。有人能告诉我有什么问题吗


另外,前面的参考资料也没有帮助。我不明白它是如何引用我的问题的。

要比较两个字符串,必须使用equals方法

例如:'

"y".equals(check11)

明显重复的人不需要答案,他们需要接近票数的选票。我认为你还没有代表结束投票,但你可以找出一个重复的,其他人可以用来结束问题。(在本例中,这是规范性的)。这不是问题所在。问题是我的代码。最后一个while语句将不会激活。我在问你是否知道问题是什么。除了回答“我可能不知道如何将某人的“y”改为布尔值的“true”的链接问题外,还要注意
while(check1==true)
是个坏主意;只需
while(选中1)
即可(可能需要更具表现力的变量名,例如
keeploping
check1
已经是一个布尔值,因此无需使用
==
获取另一个布尔值。始终使用
if(flag)
if(!flag)
“此外,前面的参考文献也没有帮助。我不明白它是如何引用我的问题的。”然后仔细阅读。您说您不知道如何将某人的
“y”
转换为布尔值。该问题的答案告诉您如何将
“y”
转换为布尔值。如果你想问别的问题,那么你需要用一个更有针对性的问题来明确这一点,最好是用一个。我不知道怎么做。但我很确定我得到了完整的和可验证的。完整如中所示,这是我试图修复的代码的精确副本。我在我的电脑和互联网软件上反复尝试过。“您想再预订一次吗?(Y或N)”创建了一个永恒的循环,幸运的是System.out.println(“您想要哪个座位?”)停止了该循环;booking=input.nextInt();请原谅这个新手,初学者,大学,文凭学生。