Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
数组不工作的JAVA if语句_Java_Arrays_If Statement - Fatal编程技术网

数组不工作的JAVA if语句

数组不工作的JAVA if语句,java,arrays,if-statement,Java,Arrays,If Statement,我正在尝试建立一个订票系统,但我的代码工作不正常,没有错误,只是我预期的结果无法得到 这是我的代码,有人能告诉我代码哪里出了问题吗 public class Train { public static void book(){ int dest,sno; char[] seat1=new char [9]; Integer Tid=1; Scanner sc= new Scanner(System.in); Scanner sc2=new Scanner(System.in

我正在尝试建立一个订票系统,但我的代码工作不正常,没有错误,只是我预期的结果无法得到 这是我的代码,有人能告诉我代码哪里出了问题吗

 public class Train  {
 public static void book(){

 int dest,sno;
 char[] seat1=new char [9];

 Integer Tid=1;

 Scanner sc= new Scanner(System.in);
 Scanner sc2=new Scanner(System.in);
 for(int i=0; i<9; i++)
{
    seat1[i]='A';
}
 System.out.println("Where do you want to go?");
  System.out.println("1. Main Entrerance to Night Safari");
  System.out.println("2. Main Enterance to River Safari");
  System.out.println("3. River Safari to Main Enterance");
  dest=sc.nextInt();
if (dest==1 && Tid !=null)
  {
System.out.println("_1"+seat1[0]+"_|_2"+seat1[1]+"_|_3"+seat1[2]+"_");
  System.out.println("_4"+seat1[3]+"_|_5"+seat1[4]+"_|_6"+seat1[5]+"_");     
  System.out.println("_7"+seat1[6]+"_|_8"+seat1[7]+"_|_9"+seat1[8]+"_");
  System.out.println("Enter seat number to select seat:");
  sno=sc.nextInt();

  if(sno>=1 && sno<=9)
{
    if(seat1[sno-1]!='B')
    {

        seat1[sno-1]='B';

        book();//here is working, it will go back again but when I re enter book(); and select dest1 agn it doesn't changed selected sno to B
    }

    else
    {
        System.out.println("Seat Already Booked, Choose Another ");

       book();
    }

}
}

else
{
    System.out.println("Invalid Seat Number, Select Again ");

    book();
}
}
}
公车{
公共静态无效书(){
int dest,sno;
char[]seat1=新字符[9];
整数Tid=1;
扫描仪sc=新的扫描仪(System.in);
扫描仪sc2=新扫描仪(System.in);

对于(int i=0;i=1&&snoEasy fix)。使用递归方法和方法
book()
。您希望编辑数组
seat1
,但每次调用方法
book()
时,都会使用初始值重新创建数组

修复方法是在调用第一个
book()
方法之前,创建另一个被调用一次的方法,如下所示:

public static void initArray() {
     for(int i=0; i<9; i++)
     {
        seat1[i]='A';
     }
}
这将提供以下输出:

运行:

你想去哪里

  • 夜间狩猎的主要入口

  • 河流狩猎的主要入口

  • 到主入口的河流狩猎

  • 一,

    1A | U 2A | 3A

    4A | u5a | 6A

    7A | u8a | 9A

    输入座位号以选择座位:

    二,

    你想去哪里

  • 夜间狩猎的主要入口

  • 河流狩猎的主要入口

  • 到主入口的河流狩猎

  • 一,

    1A | U 2B | 3A

    4A | u5a | 6A

    7A | u8a | 9A

    输入座位号以选择座位:


    这不是你想要的吗?

    Thx man=D现在B显示,但A丢失了1B_124; 2B_124; 124; 3 yaya,非常感谢!!当我将初始数组放在book()方法的上方时,你能帮我理解为什么吗?
    package javaapplication19;
    
    import java.util.Scanner;
    
    public class Train {
    
        static char[] seat1 = new char[9];
    
        public static void book() {
    
            int dest, sno;
    
            Integer Tid = 1;
    
            Scanner sc = new Scanner(System.in);
            Scanner sc2 = new Scanner(System.in);
    
            System.out.println("Where do you want to go?");
            System.out.println("1. Main Entrerance to Night Safari");
            System.out.println("2. Main Enterance to River Safari");
            System.out.println("3. River Safari to Main Enterance");
            dest = sc.nextInt();
            if (dest == 1 && Tid != null) {
                System.out.println("_1" + seat1[0] + "_|_2" + seat1[1] + "_|_3" + seat1[2] + "_");
                System.out.println("_4" + seat1[3] + "_|_5" + seat1[4] + "_|_6" + seat1[5] + "_");
                System.out.println("_7" + seat1[6] + "_|_8" + seat1[7] + "_|_9" + seat1[8] + "_");
                System.out.println("Enter seat number to select seat:");
                sno = sc.nextInt();
    
                if (sno >= 1 && sno <= 9) {
                    if (seat1[sno - 1] != 'B') {
    
                        seat1[sno - 1] = 'B';
    
                        book();//here is working, it will go back again but when I re enter book(); and select dest1 agn it doesn't changed selected sno to B
                    } else {
                        System.out.println("Seat Already Booked, Choose Another ");
    
                        book();
                    }
    
                }
            } else {
                System.out.println("Invalid Seat Number, Select Again ");
    
                book();
            }
        }
    
        public static void init() {
            for (int i = 0; i < 9; i++) {
                seat1[i] = 'A';
            }
        }
    }