【发布时间】:2015-09-11 05:22:36
【问题描述】:
当我在这个问题的措辞上苦苦挣扎时,请多多包涵。因此,假设我有一个名为“UserType”的用户定义类型,该类型有 4 个值:North、South、East 和 West。
public enum UserType {
NORTH, SOUTH, EAST, WEST
}
然后,我想在不同的类中编写一个方法语句,它将根据类型增加两个变量的值。例如,
public class direction {
private int peopleWhoGoNorth;
private int peopleWhoGoSouth;
所以 peopleWhoGoNorth 应该在每次调用以下方法时跟踪向北走的人数:
public void whichWay(UserType type) {
}
我想知道如何在括号之间创建一个语句,它基本上会说:如果类型为 North,则将 1 加到 peopleWhoGoNorth,如果类型为 South,则将 1 加到 peopleWhoGoSouth。我猜 if/else 语句应该这样做,但我不确定语法将如何工作。以下可以吗?
public void whichWay (UserType type){
if (UserType = NORTH){peopleWhoGoNorth = peopleWhoGoNorth + 1);
if (UserType = SOUTH){peopleWhoGoSouth = peopleWhoGoSouth + 1);
}
如果有什么办法可以澄清这个问题,请告诉我。
【问题讨论】:
-
if ( UserType == North )... -
对于初学者来说,最后的那些
if语句应该使用==而不是=... 例如if (UserType == NORTH) [...] -
下面的方法是可以的(一旦操作符被固定)。 “基于类型/值执行操作”有三种基本调度:条件(如图所示)、查找表和多态。
-
我收到错误,指出 UserType 和 North 都无法解析为变量,但是...
-
@Prasad Counter 建议:总是 使用大括号,except 用于单行
throw或return。否则,在条件(不带大括号)中“添加新行”需要一些想法,否则它可能会默默地破坏程序。