如何从类中的整数实现if语句

时间:2015-04-08 14:11:24

标签: java

我正在制作一个实现类文件的程序。我想要做的是使用if语句输出字符串或只输出特定的println。

//Daily travel increments.
System.out.println("After one day ");
crossCountry.changeDay(1);
crossCountry.changeDistance(1);
crossCountry.changeLocation(1);
crossCountry.printStates();

我想要做的是根据“位置”号打印一个字符串。例如,如果位置为1,那么打印“位置”行的输出应该是“达拉斯德克萨斯”或类似的东西。

可以在此链接找到完整的来源。

http://pastebin.com/DyK0BQZ4

我不确定是否可以这样做,但我正在寻找有关如何实现它的一些信息。如果无法做到这一点,请告诉我我的选择。

我想要简单,考虑到没有用户输入,我可以从我的主java文件和我的类文件中删除Location声明,只需在printStates行之后立即添加一个print语句。虽然我仍然想知道是否有办法根据位置编号实现其他内容。

4 个答案:

答案 0 :(得分:1)

您可以使用switch语句,但如果必须使用if语句,则printStates方法可能类似于

void printStates() 
{
    String locationName = "Unknown"; // or some other default location name
    if (location == 1)
    {
        locationName = "somelocation, SL";
    }
    else if (location == 2)
    {
        locationName = "thelocation, TL";       
    }
    else if (location == 3)
    {
        locationName = "otherlocation, OL";     
    }

    System.out.println("Day: " + day + "Distance Driven: " + distance +
    "Current Location: " + locationName);
}

答案 1 :(得分:1)

如果它们是顺序整数并且您想将它们存储在内存中,则可以使用String数组来执行它,您可以在声明或运行时填充它(请参阅如何处理数组here

String[] locations = {"Dallas Texas", "Somewhere over the rainbow", "Your momma"};

您可以通过数组位置读取它们(索引从零开始)。这样您就可以避免所有如果是其他切换。始终验证阵列位置是否存在。假设 locationId ,它的位置是整数:

System.out.println(locations[locationId]); // print "Dallas Texas" 

如果它们不连续,您可以使用按键对其元素编制索引的结构(在这种情况下,它是位置ID),如HashTable

答案 2 :(得分:1)

  • 您需要为changeDay() changeDistance()changeLocation()方法实现自己的逻辑
  • 您不需要为每个位置If而是使用array(或任何数据结构)来索引当前位置

-

public class JavaApplication33 {

  public static void main(String[] args) {

    // Create object.
    Travel crossCountry = new Travel();

    // Initial output.
    System.out.println("You decide to travel across the country.");
    System.out.println("You start your trip in Augusta, Ga.");
    System.out.println("You average 75mph and 12 hours driving per day");

    System.out.println("After " + 1 + " day ");
    crossCountry.changeDay(1);
    crossCountry.changeDistance(1);
    crossCountry.changeLocation(1);
    crossCountry.printStates();

  }
}


class Travel {

  int day = 0;
  int distance = 0;
  int location = 0;
  int increment = 900;
  String[] locations = {"Augusta", "Portland", "Kentucky", "Chicago", "NY", "Indiana"};

  void changeDay(int newValue) {
    day += newValue;

  }

  public void changeLocation(int newValue) {
    location += newValue;

  }

  public void changeDistance(int newValue) {
    distance += 75 * 12 * newValue;

  }

  void printStates() {
    System.out.println("Day: " + day + " Distance Driven: " + distance + " Current Location: "
        + locations[location]);
  }

}

答案 3 :(得分:0)

切换声明

switch (integerValue)
case 1:
  System.out.println("output 1");
  break;
case 2:
  System.out.println("output 2");
  break;
default:
  System.out.println("wat");
}