ArrayList
オプション「a」を選択すると、すべてにいくつかの値を格納できます。しかし、オプション'b'に移動して、入力したものを取得して変数に格納しrq
(予約された部屋の数を確認するため)、オプション'b'のforループを使用してループさせようとすると。しかし、すべての配列は空です。
コンパイル時に「エラー」も発生します。
オプション'b'forループで、これを実行しました
for(int i=0;i<all.get(4);i++)
しかし、エラーが発生します:error: bad operand types for binary operator '<'
それでキャストすることにしました。
for(int i=0;i<(Integer)all.get(4);i++)
現在エラーはありませんが、コンパイルに問題があるようです。
注:C:\ Users \ MegaStore \ Desktop \ java tests \ RoomSelection.javaは、チェックされていない、または安全でない操作を使用します。注:詳細については、-Xlint:uncheckedを指定して再コンパイルしてください。
したがって、入力した値がヒープ内にあるのか、オプション「b」を選択したときにガベージコレクターによって削除されるのか疑問に思います。
私のコードはまだ完全に入力されていませんが、目前の問題を解決したいと思います。
私のプログラムでは、ユーザーが必要とするアドオンの数(最大は4)を記録して保存する必要もあります。そのため、どこに追加して保存するのかよくわかりません。
import java.util.*;
import java.io.*;
public class test123{
public test123()throws InputMismatchException {
String choiceStr;//initialize choiceStr which is use for reading lines from scanner input
char choiceChar;//initialize choiceStr which is use for reading character from scanner input
int choice,rt,rq,ao1,night,ao2,quan;//initialize choiceStr which is use for reading integer from scanner input
String datee;
String[] roomType = {"Single Room", "Double Room", "Deluxe Room", "Junior Room", "Suite"}; //Initialize a array for room type
Integer[] priceRoom = {160,200,280,380,500}; //Initialize a array for room prices
Integer[] priceAdd = {25,60,70,100}; //Initialize a array for add-on prices
ArrayList<String> roomAndDate = new ArrayList<String>();
ArrayList<Integer> all = new ArrayList<Integer>();
Scanner input= new Scanner(System.in); //Initialize a scanner input
System.out.println("Room Selection");
System.out.println("==============\n");
System.out.println("[a] Room Type");
System.out.println("[b] Add-Ons");
System.out.println("[c] Main Menu");
System.out.println("Type 'a' to select Room Type and state the desire quantity for each type.");
System.out.println("Type 'b' to select the Add-Ons.");
System.out.println("Type 'c' to exit from the Booking Menu.");
System.out.println("Please enter your option (a, b or c): ");
;
choiceStr = input.nextLine();
choiceChar = choiceStr.charAt(0);
switch(choiceChar){
case 'a': System.out.println("Room Type");
System.out.println("=====================================================");
System.out.println("(1) Single Room (1 person) - Price: S$160");
System.out.println("(2) Double Room (2 persons) - Price: S$200");
System.out.println("(3) Deluxe Room (2 persons) - Price: S$280");
System.out.println("(4) Junior Suite (2 persons) - Price: S$380");
System.out.println("(5) Suite (2 persons) - Price: S$500\n");
System.out.println("Enter Room types (Enter '1' to '5')");
choice=input.nextInt();
while(choice>5){
if(choice>5){
System.out.println("Please enter number between '1' to '5'!");
choice=input.nextInt();
}
}
String roomTypess= roomType[choice-1];
roomAndDate.add(roomTypess);
int storePricee = priceRoom[choice-1];
all.add(storePricee);
System.out.println("Number of rooms required (maximum 10): ");
choice=input.nextInt();
while(choice>10){
if(choice>10){
System.out.println("Please enter again!");
choice=input.nextInt();
}
}
all.add(choice);
for(int i=0;i<choice;i++){
System.out.println("Enter the date of checked-in (dd/mm/yy) for "+roomAndDate.get(0) +" " + (i+1));
choiceStr = input.nextLine();
choiceStr = input.nextLine();
roomAndDate.add(choiceStr);
System.out.println(roomAndDate);
System.out.println("Enter number of Add-on for "+roomAndDate.get(0) + " " +(i+1)+": ");
choice=input.nextInt();
while(choice>4){
if(choice>4){
System.out.println("Please enter again! Choose only option 1 to 4");
choice=input.nextInt();
}
}
all.add(choice);
System.out.println("Number of night(s) required (maximum 30) for "+roomAndDate.get(0) + " " +(i+1)+ ": ");
choice=input.nextInt();
while(choice>30){
if(choice>30){
System.out.println("Please enter again! Maximum is 30 days!");
choice=input.nextInt();
}
}
all.add(choice);
}
new RoomSelection();
break;
case 'b': System.out.println("Room req is empty? : "+all.isEmpty());
System.out.println("Add-Ons");
System.out.println("=====================================================");
System.out.println("(1) Breakfast voucher (1 person) per day - Price: S$25");
System.out.println("(2) Spa voucher (1 person) - Price: S$60");
System.out.println("(3) Half Day Tour voucher (1 person) - Price: S$70");
System.out.println("(4) Full Day Tour voucher (1 person) - Price: $100\n");
for(int i=0;i<(Integer)all.get(3);i++){
System.out.println("Enter Add-On option");
choice=input.nextInt();
while(choice>4){
if(choice>4){
System.out.println("Please enter again! Choose only option 1 to 4");
choice=input.nextInt();
}
}
all.add(choice);
System.out.println("Enter quantity required for Add-On option " + (i+1)+": ");
choice=input.nextInt();
all.add(choice);
}
break;
case 'c': new MainPage1();break;
default:continue;
}
}
}