1

私はJavaコードのビットに苦労しています。

現在8部屋あります

    room1 = new Room(1,1);
    room2 = new Room(2,1);
    room3 = new Room(3,1);
    room4 = new Room(4,1);
    room5 = new Room(5,2);
    room6 = new Room(6,2);
    room7 = new Room(7,3);
    room8 = new Room(8,3);

ここで、ユーザーが必要な部屋に関して1から8までの番号を入力できるようにする必要があります。次に、システムはその番号をプレフィックスの部屋に追加して、目的の部屋のメソッドを呼び出すことができるようにする必要があります。

私は現在、選択を受け取るためにこのコードを持っています

roomselect = scan.nextInt();

そして、これは、接頭辞「部屋」にroomselect整数を追加する方法がわからないため、行き詰まる場所です

ありがとう

4

4 に答える 4

2

配列を使用するだけです:

// Create an array of Rooms
Room rooms[] = new Room[8];
// Now, you have a placeholder for 8 rooms
// Know that it are simply placeholders, the rooms are not initialized.
// Each element of the array is initialized to null

// Assigning
rooms[2] = new Room(3, 2); // Initialize the room at index 2 (which is the 3th 
                           // in spoken language)


// Retrieving
int index = 4; // Indices start at 0
Room room4 = rooms[index];

// Or...
rooms[5].doSomething();


// Getting the length
int numberOfRooms = rooms.length;

だから、あなたのケースを解決するには:

int roomselect = scan.nextInt();
Room selectedRoom = rooms[roomselect];
于 2012-07-15T18:33:46.827 に答える
1

コードを次のように変更した場合:

List<Room> rooms = new ArrayList<Room>();    
rooms.add(new Room(1,1));
rooms.add(new Room(2,1));
...

指定した部屋を取得できます

rooms.get(roomselect);

インデックスは 1 ではなく 0 から始まることに注意してください。

于 2012-07-15T18:33:55.797 に答える
1

部屋を個別の変数としてではなく配列に保存し、配列インデックスで各部屋にアクセスします。

Room[] rooms = new Room[8];

rooms[roomNumber].doSomething();
于 2012-07-15T18:34:16.077 に答える
0

Javaコレクションがその答えです...

ArrayList<Room> room = new ArrayList<Room>();

Scanner scan = new Scanner(System.in);

for (int i=1 ; i<9 ; i++){

     int r = scan.nextLine();

     if (r<5){

       room.add(new Room(r,1));
   }

    else if ((r>4) && (r<7)){

      room.add(new Room(r,2));
   }

    else if (r>6){

       room.add(new Room(r,3));

   }

}
于 2012-07-15T18:43:03.483 に答える