2016-10-14 48 views
0

用户将玩一个匹配的游戏。如果该项目与该号码匹配,则它会说它匹配,否则它不匹配。所有匹配的数字都传递到matchedNum数组上。 matchedNum数组的初始值为零。当数组中不再有零时,我该如何停止循环?如何在数组中没有剩余零的情况下打破循环?(C#)

class Program 
{ 
    public static int[,] memoryNum = { { 2, 1, 7, 3 }, { 5, 4, 9, 6 }, { 3, 7, 2, 4 }, { 6, 5, 1, 9 } }; 
    public static int[,] matchedNum = { { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 } }; 
    public static int row1 = 0; 
    public static int col1 = 0; 
    public static int row2 = 0; 
    public static int col2 = 0; 
    public Boolean matches = true; 
    public static int tries = 3; 
    static void Main(string[] args) 
    { 
     for (int i = 0; i < 4; i++) 
     { 
      for (int j = 0; j < 4; j++) 
      { 
       Console.Write("* "); 
       if (j == 3) 
       { 
        Console.WriteLine(""); 
       } 
      } 
     } 

     while (tries != 0) 
     { 
      Console.Write("\nEnter row(First Num): "); 
      row1 = Convert.ToInt32(Console.ReadLine()); 
      checker(row1); 
      Console.Write("Enter col(First Num): "); 
      col1 = Convert.ToInt32(Console.ReadLine()); 
      checker(col1); 
      Console.Write("Enter row(Second Num): "); 
      row2 = Convert.ToInt32(Console.ReadLine()); 
      checker(row2); 
      Console.Write("Enter col(Second Num): "); 
      col2 = Convert.ToInt32(Console.ReadLine()); 
      checker(col2); 

      if (memoryNum[row1 - 1, col1 - 1] == memoryNum[row2 - 1, col2 - 1]) 
      { 
       matchedNum[row1 - 1, col1 - 1] = memoryNum[row1 - 1, col1 - 1]; 
       matchedNum[row2 - 1, col2 - 1] = memoryNum[row2 - 1, col2 - 1]; 
       displayMatched(matchedNum); 
       Console.WriteLine("Matched!"); 
      } 
      else 
      { 
       displayNotMatched(memoryNum); 
       tries--; 
       Console.WriteLine("Did not match, Please try again!"); 
      } 

      //if there's no zero in the array, break; 
     } 


     if(tries == 0) 
      Console.WriteLine("Number of tries exceeded! Play Again?"); 
     Console.ReadKey(); 
    } 
} 
+0

使用[Break;](https://msdn.microsoft.com/en-us/library/adbctzc4.aspx)它会终止最近出现的封闭循环或switch语句。如果有的话,控制权将传递给终止语句后面的语句。 –

+0

@MohitShrivastava我知道我需要使用break,但我不知道如何使用for循环。如果我尝试'如果(matchedNum [i] [j]!= 0)break'',那么它会忽略其余的数字。我在想那个数字之后是否为零? – Temmie

+0

你是否要求为'break'设置'if'条件?来自评论部分的Cuz,我认为你已经知道你需要以某种方式“打破”循环。 – uTeisT

回答

2

使用一个计数器,当它是16时,没有更多的零寻找。

+0

谢谢!正是我需要的!我忘记了计数器存在哈哈 – Temmie

+0

虽然计数器应该等于8,因为它增加了每个匹配的数字,因为只有8个匹配的数字,但谢谢你! – Temmie

0

break语句终止出现的最近的封闭循环语句或切换语句。控制传递给在终止语句后面的语句。 More

相关问题