2015-02-17 3 views
-2

Мне нужно заполнить булевский массив по одному. Вот код, который у меня есть для заполнения первой строки до истины, один за другим, и он работает. Я хочу сделать это с помощью цикла или чего-то другого, поэтому мне не нужны все инструкции if, else if. Любые предложения о том, как это сделать?заполнить два размерных булева массива

public class Airline { 

boolean seat[][] = new boolean[2][3]; 



Scanner input = new Scanner(System.in); 

public void start() { 
    while (true) { 
     makeReservation(); 
    } 
} 

public void makeReservation() { 
System.out.println("Press 1 or 2"); 
    int klass = input.nextInt(); 
    if (klass == 1) { 
     firstClassSeat(); 
    } else { 
     economySeat(); 
    } 
} 

public void firstClassSeat() // assign a first class seat 
{ 
    for (int row = 0; row < seat.length; row++) { 
     for (int col = 0; col < seat[row].length; col++) { 

     } 
     if (seat[0][0] == false) 
     { 

      seat[0][0] = true; // assign seat 
      System.out.println("You now have seat 00 in first class"); 

      break; 

     } 
     if (seat[0][1] == false) { 

      seat[0][1] = true; // assign seat 
      System.out.println("You now have seat 01 in first class"); 

      break; 
     } else if (seat[0][2] == false) { 

      seat[0][2] = true; // assign seat 
      System.out.println("You now have seat 02 in first class"); 

      break; 
     } else { 
    System.out.println("The plane is full"); 
      int val = input.nextInt(); 
      if (val == 1) { 
       economySeat(); 
       start(); 
      } else { 
       System.out.println("Thank you and welcome again"); 
       System.exit(0); 
      } 
     } 
    } 
} 

public void economySeat() // assign an economy seat 
{ 
    for (int row = 0; row < seat.length; row++) { 
     for (int col = 0; col < seat[row].length; col++) { 

     } 
     if (seat[1][0] == false) 
     { 

      seat[1][0] = true; // assign seat 
      System.out.println("You now have seat 01 in first class"); 

      break; 

     } 
     if (seat[1][1] == false) { 

      seat[1][1] = true; // assign seat 
      System.out.println("You now have seat 02 in first class"); 

      break; 
     } else if (seat[1][2] == false) { 

      seat[1][2] = true; // assign seat 
      System.out.println("You now have seat 02 in first class"); 

      break; 
     } else { 
     System.out.println("The economy class is full "); 
      int val = input.nextInt(); 
      if (val == 1) { 
       economySeat(); 
       start(); 
      } else { 
       System.out.println("Thank you and welcome again"); 
       System.exit(0); 
      } 
     } 
    } 
} 

} 

Вот что я сделал с Firstclass методом

public void firstClassSeat() { 

    for (int row = 0; row < seat.length; row++) { 

     for (int col = 0; col < seat[row].length; col++) { 

      if (!seat[row][col]) 
      { 

       seat[row][col] = true; 
    System.out.println("You have place number 0" + row + " in the Firstclass"); 

       break; 

      } else if (seat[0][2]) { 
       if (seat[1][2]) { 
        System.out.println("The plane is full, welcome again"); 
        System.exit(0); 
       } 
      } else { 
System.out.println("First class is full. Economyclass? 1 for yes 2 for no");  
       int choice = input.nextInt(); 
       if (choice == 1) { 
        economySeat(); 
        start(); 
       } else { 
        System.out.println("Thank you and welcome again"); 
        System.exit(0); 
       } 
      } 
     } 
    } 
} 

Но я не знаю, как сделать так, что только делает массив правда один на один. Этот код занимает два в то время. Какие-либо предложения?

+0

Пост весь класс. –

+0

Я разместил весь класс. Это еще не закончено. Я просто хочу знать, как изменить код, поэтому мне не нужны все операторы if и else if. –

+0

Вы хотите сделать true false false false, что-то вроде этого в каждой строке? –

ответ

0

Есть много очень плохих конвенций в вашем коде, но то, что вы ищете,

for(int i = 0; i < seat.length; i++) 
    for(int j = 0; j < seat[i].length; j++) 
     seat[i][j] = newBool; 
Смежные вопросы