前提・実現したいこと
関数next内の前半のfor文と後半の入れ子になっているfor文を一つの入れ子になっているfor文にまとめたいです。
なんかかっこ悪いのでスマートな書き方があったら教えてください。
hyoはvかけるvの二次元配列
now_gyo,now_retuはグローバル変数
気持ちとしては今の座標をもとに次?の座標(-1,0でないもの)をもとめる感じです
例えばv=5の以下の表でnow_gyo=1 , now_retu=2なら実行後はnow_gyo=2 , now_retu=4になってほしいです。
0 -1 -1 5 -1
-1 0 -1 4 5
-1 -1 0 2 -1
-1 -1 -1 0 -1
-1 -1 -1 -1 0
該当のソースコード
java
1 2 import java.util.Arrays; 3 4public class hogehoge { 5 public static int now_gyo=1; 6 public static int now_retu=2; 7 public static int v=5; 8 public static void main(String[] args) { 9 next(); 10 11 } 12 public static void next() { 13 14 int[][] hyo=new int[][]{ 15 {0 ,-1, -1 , 5 ,-1}, 16 {-1 , 0, -1 , 4 , 5}, 17 {-1 ,-1, 0 , 2 ,-1}, 18 {-1 ,-1, -1 , 0 ,-1}, 19 {-1 ,-1, -1 ,-1 , 0} 20 }; 21 for (int i = now_retu+1; i < v; i++) { 22 if(hyo[now_gyo][i]==-1){ 23 now_retu=i; 24 return; 25 } 26 } 27 for (int i = now_gyo+1; i < v; i++) { 28 for (int j = i+1; j < v; j++) { 29 if(hyo[i][j]==-1){ 30 now_gyo=i; 31 now_retu=j; 32 return; 33 } 34 } 35 } 36 } 37} 38
回答2件
あなたの回答
tips
プレビュー