数组不工作的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';
}
}
}