code_junkie

Refactoring away labeled loops

Nov 10th, 2011
139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.29 KB | None | 0 0
  1. vectorLoop:
  2. for( int idx = 0; idx < vectorLength; idx++) {
  3. if( conditionAtVectorPosition( v, idx ) ) continue vectorLoop;
  4.  
  5. matrixLoop:
  6. for( rowIdx = 0; rowIdx < n; rowIdx++ ) {
  7. if( anotherConditionAtVector( v, rowIdx ) ) continue matrixLoop;
  8. if( conditionAtMatrixRowCol( m, rowIdx, idx ) ) continue vectorLoop;
  9. }
  10. setValueInVector( v, idx );
  11. }
  12.  
  13. for( int idx = 0; idx < vectorLength; idx++) {
  14. if( conditionAtVectorPosition( v, idx ) ) continue;
  15.  
  16. for( rowIdx = 0; rowIdx < n; rowIdx++ ) {
  17. if( anotherConditionAtVector( v, rowIdx ) ) continue;
  18. if( conditionAtMatrixRowCol( m, rowIdx, idx ) ) break;
  19. }
  20. if ( !conditionAtMatrixRowCol( m, rowIdx, idx ))
  21. setValueInVector( v, idx );
  22. }
  23.  
  24. for( int idx = 0; idx < vectorLength; idx++) {
  25. if( conditionAtVectorPosition( v, idx ) ) continue;
  26.  
  27. for( rowIdx = 0; rowIdx < n; rowIdx++ ) {
  28. if( anotherConditionAtVector( v, rowIdx ) ) continue;
  29. if( conditionAtMatrixRowCol( m, rowIdx, idx ) ) break;
  30. }
  31. if( !conditionAtMatrixRowCol( m, rowIdx, idx ) )
  32. setValueInVector( v, idx );
  33. }
  34.  
  35. for( int idx = 0; idx < vectorLength; idx++) {
  36. if( conditionAtVectorPosition( v, idx )
  37. || !CheckedEntireMatrix(v)) continue;
  38.  
  39. setValueInVector( v, idx );
  40. }
  41.  
  42. private bool CheckedEntireMatrix(Vector v)
  43. {
  44. for( rowIdx = 0; rowIdx < n; rowIdx++ ) {
  45. if( anotherConditionAtVector( v, rowIdx ) ) continue;
  46. if( conditionAtMatrixRowCol( m, rowIdx, idx ) ) return false;
  47. }
  48. return true;
  49. }
  50.  
  51. for( int idx = 0; idx < vectorLength; idx++) {
  52. if (!conditionAtVectorPosition( v, idx )
  53. && checkedRow(v, idx))
  54. setValueInVector( v, idx );
  55. }
  56.  
  57. private boolean checkedRow(Vector v, int idx) {
  58. for( rowIdx = 0; rowIdx < n; rowIdx++ ) {
  59. if( anotherConditionAtVector( v, rowIdx ) ) continue;
  60. if( conditionAtMatrixRowCol( m, rowIdx, idx ) ) return false;
  61. }
  62. return true;
  63. }
  64.  
  65. for( int idx = 0; idx < vectorLength; idx++) {
  66. if( !conditionAtVectorPosition( v, idx ) && CheckedEntireMatrix(v))
  67. setValueInVector( v, idx );
  68. }
  69.  
  70. inline bool CheckedEntireMatrix(Vector v) {
  71. for(rowIdx = 0; rowIdx < n; rowIdx++)
  72. if ( !anotherConditionAtVector(v,rowIdx) && conditionAtMatrixRowCol(m,rowIdx,idx) )
  73. return false;
  74. return true;
  75. }
Add Comment
Please, Sign In to add comment