2011-09-22 5 views
1

나는 fortran에서 이와 비슷한 것을 가지고 있습니다.Fortran 프로그램에 해당하는 Java 코드 작성

20: call TESTBEGIN(a,b,c) 
     if(c<1) goto 40 
30: call TESTMIDDLE(e,f,g) 
     if(g==1) goto 20 
40: return   

하지만 내 코드는 같은이

Subroutine testCase() 
20: CALL beginTest(a,b) 
    IF (b.EQ.-1) GOTO 999 
30: CALL middleTest(c,b) 
     IF (b.EQ.-1) GOTO 20 
40: CALL endTest(d,b) 
    IF (b.EQ.-1) GOTO 30 
    CALL LastTest(e,b) 
     IF (.b.EQ.-1) GOTO 40 
     DO I =1,j 
     DTEMP(j)=1.0 
    END DO 
some code 
999:return 

답변

1

뭔가처럼?

do 
{ 
    c = TESTBEGIN(a,b); 
    if (c < 1) break; 
    g = TESTMIDDLE(e,f); 
} while (g == 1); 

두 번째 코드에 대한 상태 기계를 시도 :

for(int state = 1; state != 0;) 
{ 
    switch(state) 
    { 
    case 1: 
    state = (beginTest(a) == -1) ? 0 : 2; 
    break; 
    case 2: 
    state = (middleTest(c) == -1) ? 1 : 3; 
    break; 
    case 3: 
    state = (endTest(d) == -1) ? 2 : 4; 
    break; 
    case 4: 
    state = (lastTest(e) == -1) ? 3 : 5; 
    break; 
    } 
    case 5: 
    state = 0; 
// DO I =1,j // Honestly I don't know what does it do. 
//  DTEMP(j)=1.0 
    break; 
} 

또는 더 나은 시도 알고리즘을 재고, 난 당신이 더 쉽게 읽고 자바를 사용하여 이해하기 위해 할 수있는 생각합니다.