-15
for(;;){ /********* infinite iteration**************/
  for(k=1;k<=8;k++){
                  loop1:
                     for(n=0; n<48;n++){
                        for(i=0; i<8; i++){
                               for(j=0; j<natm; j++){
                                             ...................
                                                statements;
                               }
                        }

                    }   
                  E[iter] /*** Result of three loops such as n,i,j ***/ 

                  if (E[iter] < E[iter-1])  
                  {
                    iter++;
                    print the value of E[iter];
                    /***again calculate the E[iter] ****/
                    goto loop1;
                  }
                  else if(E[iter]>E[iter-1])
                 {
/**   stop the current for loop of k and move to k=2 **/
     /*** here is the problem for me i want to get rid of this loop and goto to the next iteration for loop (k =2)***/  

                 }  

            }
      }
4

4 に答える 4

0

continue;上記の回答が示すように、コマンドを使用できます。goto loop1;または、コマンドで同じロジックを適用してみてくださいfork

于 2013-04-04T02:19:24.383 に答える
0

@calccryptoコメントに基づく:

forループの次の反復に進みたい場合:

else if(E[iter]>E[iter-1])
{
     continue;
}
于 2013-04-03T09:36:08.253 に答える
0

コメントを置き換えます / *ここに問題があります ... で

continue;

continue ステートメントは現在の反復をスキップして次の反復に進みますが、中断するのとは反対にループ全体を中断することはありません。声明。

于 2013-04-03T09:36:35.060 に答える