Példa

public static void main( String[] args ) {
int m0 = Integer.parseInt( args[ 0 ] );
int m1 = Integer.parseInt( args[ 1 ] );
int m2 = Integer.parseInt( args[ 2 ] );
int m3 = Integer.parseInt( args[ 3 ] );

for ( int i = 0; i < m0; i++ ) {
for ( int j = 0; j < m1; j++ ) {
for ( int k = 0; k < m2; k++ ) {
for ( int z = 0; z < m3; z++ ) {
System.out.println( "Fourth dimension?"); //$NON-NLS-1$
}
}
}
}
}

Megoldás
Használjon extract metódus átdolgozást.
  1. Válassza ki a két legbelső ciklust, és dolgozza át őket egy metódusba.
  2. Ismételgesse ezt a lépést, amíg el nem fogynak a mélyen beágyazott ciklusok.

public static void main( String[] args ) {
int m0 = Integer.parseInt( args[ 0 ] );
int m1 = Integer.parseInt( args[ 1 ] );
int m2 = Integer.parseInt( args[ 2 ] );
int m3 = Integer.parseInt( args[ 3 ] );

for ( int i = 0; i < m0; i++ ) {
for ( int j = 0; j < m1; j++ ) {
method( m2, m3 );
}
}
}

private static void method( int iMax1, int iMax2 ) {
for ( int k = 0; k < iMax1; k++ ) {
for ( int z = 0; z < iMax2; z++ ) {
System.out.println( "Fourth dimension?"); //$NON-NLS-1$
}
}
}