2015-02-24 205 views
-5

我有一个“禁止”玩家的类,但是如果他的名字在一个字符串数组中,我不希望这个玩家被禁止。我可以遍历数组的长度并使用布尔值,但是必须有更简单的方法吗?我看到的东西只是说如果符合条件,把return;,它会停止所有代码运行下面,如果语句。如何停止运行某些代码?

编辑:感谢您的帮助!即使你是一个低估了这一点的人,你至少有4人,但你们都很有帮助。

+1

是的,你是对的,if..else语句是条件块,它执行的典型条件 – Vihar 2015-02-24 04:53:42

+1

叫我老学校,我被教导有一个入口和所有函数/方法的出口点,但把'return'除此之外,任何其他方法的结束都是一个坏主意,因为这很容易让人们错过它,并且误解了逻辑想要达到的目标。 – MadProgrammer 2015-02-24 04:57:31

+1

给我打电话给年纪较大的学校,但是编译器将具有多个返回语句的方法转换为单一退出程序,* ergo *它们在语义上相同,* ergo *不需要通过额外的循环跳转以避免多重返回语句。我从来没有见过这个神秘的程序员,他们无法理解他们,也没有遇到过三级运算符优先级的人。一直以来,有些程序员一定对他们的同事感到amazing contem不安。 – EJP 2015-02-24 07:52:37

回答

1

您可以创建一个方法来检查玩家是否在字符串数组中,并且如果您在void方法中使用return方法将会结束。

例如

public void returnUsage(int n) 
{ 
    if(n==1) 
    { 
     return; 
    } 
    System.out.println("n doesn't equal 1."); 
} 

但它很可能是最好使用ifelse跳过你不想,如果条件不满足运行代码。 http://docs.oracle.com/javase/tutorial/java/nutsandbolts/if.html

+0

请用你的if语句使用大括号;即'if(n == 1){return; }' – 2015-02-24 05:07:15

0

数组是该任务的错误数据结构。将玩家添加到Set<> allowedPlayers = new HashSet<String>(),然后使用if(allowedPlayers.contains(name)) return;根据玩家的姓名是否在设置中来有条件地退出该方法。当名称数量变大时,该集合将保持快速。使用阵列扫描时,阵列很大时阵列会很慢。

+0

更简单的是只有一个禁止玩家名字的集合。 – dnault 2015-02-24 05:01:08

+0

@dnault哇是什么错过!卫生署!谢谢 – simbo1905 2015-02-24 05:10:58

+0

'Set'将保持快速'完全取决于您使用哪种实现。 – EJP 2015-02-24 09:04:38