2013-06-05 255 views
-3
public class Multiply { 

    public static void main(String[] args) { 
     int M[][]=new int [3][3]; 
     int M1[][]=new int[3][3]; 

     int B=0; 
     //int B[][]=new int [3][3]; 
     //Multiply Matrix 1 by Matrix 2 
     //Matrix 1 
     //Matrix 2 
     //Multiplication 
     { 
      for(int l=0;l<3;l++) 
       for(int i=0;i<3;i++) 
        for(int j=0;j<3;j++) 
        { 
         for(int k=0;k<3;k++) 
         { 
          B=(M[i][j]*M1[k][l])+B; 

          while(i==2) 
          { 
           System.out.print(B+" "); 
          } 
         } 
        } 
      System.out.println(""); 
     } 
    } 
} 

我的程序运行到一个无限循环,有人可以告诉我我犯了什么错误。 该程序倍增两个矩阵。无限循环:

+0

你有更多的花括号比开大括号。 – Cairnarvon

回答

7

这里:

while(i==2) 
     { 
    System.out.print(B+" "); 
     } 

这个循环一旦启动,将永远不会完成为i变量的值永远不会上述循环内改变。

+0

如果我将其更改为(j == 2),该怎么办? –

+0

@TanyaRao它会发生同样的事情。你知道一段时间的目的是什么吗?如果j = 2,你将进入你的遗嘱循环。由于你没有增加它,程序将再次读取指令j == 2并将其评估为true。所以你也会有一个无限循环。 – user2336315

+0

如果将其更改为'while(j == 2)',那么它也是一样的。你可以改变这个'if(i == 2)'。 –

3

while循环不终止。因此,做一个

if(i==2){ 

System.out.print(B+" ") 

} 
+0

谢谢,我明白了为什么while循环遇到无限循环。 –

+0

@TanyaRao欢迎您。很高兴听到你得到它。 –