将if语句集成到for循环中

时间:2014-02-28 05:27:13

标签: java if-statement for-loop

我正在制作一个Mastermind计划。

我生成一个包含4个数字字符的随机字符串(字符不能重复)。出于测试目的,它总是1234。

然后要求用户通过输入4个数字来猜测字符串。

我正在创建一个名为PerfectMatches的方法,用于检查猜测数字的正确位置和正确位置。

这是我的代码:

public static int perfectMatches (String x, String y){
    int i = 0;
    int perfectmatches = 0;

    for (i=0; i < 4; i++){
        if ((x.charAt(i)) == (y.charAt(i))){
            perfectmatches++;
        }

我尝试使用if语句,但我觉得它效率不高,需要更长的时间来处理程序。

3 个答案:

答案 0 :(得分:0)

由于长度为4,因此在这种情况下性能无关紧要。我认为perfectMatches()方法应返回boolean

public static boolean perfectMatches(String x, String y) {...}

另外,避免使用幻数:

for (int i = 0; i < x.length(); i++)

最后,您可以将perfectmatches4进行比较,然后返回boolean(真或假):

return (perfectmaches == 4);

但是如果你想返回匹配数量,那么你的方法就可以了。只需返回perfectmatches。作为和建议,您可以更改perfectmatches的名称,因为它与方法的名称非常相似perfectMatches()

答案 1 :(得分:0)

我认为这不会造成任何性能问题。

BTW,与问题无关:

我编写了MasterMind应用程序。你必须考虑删除“数字不能重复”的条件。它使游戏/拼图更容易,以及实施。

如果您想要具有挑战性的拼图以及编码,请允许复制数字。在这种情况下,您必须在单个方法中计算完美匹配和(匹配,但不在同一位置)。

答案 2 :(得分:0)

它没有真正的问题......它只是检查你的代码......

public int perfectMatches (String x, String y){ 
   int i = 0; 
   int perfectmatches = 0;

   for(i = 0; i < x.length(); i++){
      if(x.charAt(i) == y.charAt(i)){
          perfectmatches++;
      }
   }

   return perfectmatches;
}

另一个......删除静态...