0

我刚刚开始学习 Java,并且一直在尝试一些想法。我编写了以下一小段代码,运行时会输出房屋中的不同房间。房间由一个介于 1 和 3 之间的随机整数决定。代码似乎工作得很好。然而,由于我是编程新手,我担心的是我可能误解了其中一个指导我工作的教程,并使用了一种低效的方式来完成它。

谁能告诉我我是否使用最佳实践来实现我想要的结果并解释我可以做出的任何更改以使代码更好?

import java.util.Random;

public class Rooms {

  public static void main(String[] args) {

  Random random = new Random();
  int roomNumber = random.nextInt(3) + 1;
  String getRoom = "";

  if (roomNumber == 1) {
    getRoom = "Living Room";
  } else if (roomNumber == 2) {
    getRoom = "Kitchen";
  } else if (roomNumber == 3) {
    getRoom = "Bathroom";
  }

  System.out.println(getRoom);

  }
}

感谢您阅读本文。

4

2 回答 2

5

您可以简单地将其rooms放入一个数组中:

String[] rooms = { "Living Room", "Kitchen", "Bathroom" };
int roomNumber = random.nextInt(rooms.length);
System.out.println(rooms[roomNumber]);

背景: Random.nextInt(n)int参数作为上限,它返回0和(但不包括)n之间的整数。使用rooms.length此处将允许您从数组中选择一个随机索引,而不会导致ArrayIndexOutOfBoundsException.

于 2012-12-19T02:11:05.373 回答
0

你的代码很好。我唯一可以推荐的是:使用switch而不是multiple-if和else更快,但是当你随机运行一次时,这并不重要。如果您需要,该开关:

switch (roomNumber) {
    case 1:  getRoom = "Living Room";
             break;
    case 2:  getRoom = "Kitchen";
             break;
    case 3:  getRoom = "Bathroom";
             break;   
    default: getRoom = "Error!";
             break;
}

您也可以使用列表或数组。数组也会加快你的速度,如果你定义了元素的数量,总是使用数组。

String[] rooms = new String[]{"Living Room", "Kitchen", "Bathroom"};
getRoom = rooms[random.nextInt(rooms.length)];
于 2012-12-19T02:12:16.973 回答