2016-11-01 8 views
0

これはしばらくの間答えを探していましたが、ArrayListを使用している人とそれを行った人が見つかりましたが、両方の行を削除することでしたと同時に私は、最後の1つの言及に続くことによってそれをやろうとしていると思うが、私は何を "続ける"か分からない。手段、方法と時期にその使用。これは私が(私は変数の名前を変更しますが、そのまだちょっと同じ)が見つかりコードです:行または列内の行列を削除する方法

public static long [][] removecol(long mat[][],int ren, int col){ 
    int rengre=ren;// row to remove 
    int colre=col;// column to remove 
    long mat2[][]= new long [mat.length-1][mat[0].length-1]; 
    int p=0; 
    for(int i = 0; i <mat.length; ++i) 
    { 
     if (i == rengre) 
      continue; 
     int q = 0; 
     for(int j = 0; j <mat[0].length; ++j) 
     { 
      if (j == colre) 
       continue; 

      mat2[p][q] = mat[i][j]; 
      ++q; 
     } 
     ++p; 
    } 
     return mat2; 
} 

私は多分削除するには二つの方法、1に分離することを考えていました行や列を削除するには、他の、このような何か:

public static long [][] removerow(long mat[][],int ren){ 
    int rengre=ren;//row to remove 
    long mat2[][]= new long [mat.length-1][mat[0].length]; 
    int p=0; 
    for(int i = 0; i <mat.length; ++i) 
    { 
     if (i == rengre) 
      continue; 
     int q = 0; 
     for(int j = 0; j <mat[0].length; ++j) 
     { 
      if (j == colre) 
       continue; 

      mat2[p][q] = mat[i][j]; 
      ++q; 
     } 
     ++p; 
    } 
     return mat2; 
} 

しかし、私は実際に列と行の間でこれを分離する方法を知らない...私はこのトピックについての質問の疲れあなたがかもしれない私を知っているが、私は単純に来ることができませんそれを行う方法でアップ:cヘルプ。

+0

続きは、残りのループをスキップすることを意味し、ループの次の反復を開始します。コードが削除されるために一致する行または列は、最終的な配列に追加されません。最後の配列がメソッドから返されます。 – Shafiul

答えて

0

continueが発生した場合、ループ内の残りのコードはスキップされ、ループの次の繰り返しが行われます。例については :

int [] numbers = {10, 20, 30, 40, 50}; 
    for(int x : numbers) { 
    if(x == 30) { 
     continue;   
     } 
    System.out.print(x);  //when x=30,these will not run; 
    System.out.print("\n"); 
    } 

ここで、x = 30、が実行されると、あなたのループが次の反復に行く代わりの継続にcode.Forのあなたの残りの部分を実行し、より理解し、見ていきます続けたときあなたの列/行削除problem.Your外側のループが行を削除するために使用され、内部ループがcolumn.Ifを除去するのに使用される約these examples.

さて、あなたはあなたの列を削除したくない、そしてを使用していけないでを続けますあなたのコードは次のようなものになります...

public static long [][] removerow(long mat[][],int ren){ 
    int rengre=ren;//row to remove 
    long mat2[][]= new long [mat.length-1][mat[0].length]; 
    int p=0; 
    for(int i = 0; i <mat.length; ++i) 
    { 
     if (i == rengre) 
      continue; 
     int q = 0; 
     for(int j = 0; j <mat[0].length; ++j) 
     { 
      mat2[p][q] = mat[i][j]; 
      ++q; 
     } 
     ++p; 
    } 
     return mat2; 
} 
+0

おっとありがとう、私は行を削除したくない場合は、内側のループにセクションを変更しますか? – Angelmartin11

+0

井戸..しかし、まだ自分でそれを試してみてください –

関連する問題