2013-08-22 9 views
1

저는 방금 BASIC을 배우기 시작했고 Stackoverflow를 사용하기 시작했습니다. 이것은 FBIDE의 코드입니다. 오류 메시지는 다음과 같습니다Freebasic 컴파일 실패

 
42 variable not declared : var1 in 'input "Enter Function Number" ;var1/
- 
32 expected 'END IF' found 'end' in 'end sub'/ 
- 
32 expected 'END IF' in 'end sub' 
- 

코드 : 프로그램 변수 var1에서

declare sub premain 
declare sub main 
dim var1 as integer 
premain 
sub premain 
    print "EMC ALPHA v1.0" 
    main 
end sub 

sub main 
    print "Functions:" 
    print "1.Add" 
    print "2.Subtract" 
    print "3.Multiply" 
    print "4.Divide" 

    input "Enter Function Number" ;var1 
    if var1=1 then 
     print "HElo" 
end sub 

답변

2

주 프로그램 범위에 선언되어있다. 이 변수는 SHARED 키워드를 사용하지 않는 한 하위 프로그램 (절차 : SUB 또는 FUNCTION)에서 액세스 할 수 없습니다. 그러면 변수가 프로그램에서 전역 적으로 사용할 수있게됩니다. (공유 만든) 드물게 프로그램 전체의 구성/설정, 예를 들어,에 대한 예를 들어, 사용해서는 안

declare sub premain 
declare sub main 

premain 
sleep: end 


sub premain 
    print "EMC ALPHA v1.0" 
    main 
end sub 

sub main 
    print "Functions:" 
    print "1.Add" 
    print "2.Subtract" 
    print "3.Multiply" 
    print "4.Divide" 
    '****vv HAVE A LOOK HERE vv**** 
    dim var1 as integer 
    input "Enter Function Number" ;var1 
    if var1=1 then 
     print "HElo" 
    end if '<== this was missing, too. ***** ("Expected END IF") 
end sub 

전역 변수 :

더 좋은 방법은 지역 변수를 사용하는 것입니다 다국어 응용 프로그램에서 사용자가 선택한 언어

또한, 귀하의 프로그램에 END IF (내 게시물에서 위의 코드 스 니펫에서 수정 됨)이 누락되었습니다.

+0

대단히 감사합니다. 하나의 마지막 질문 - 끝은 무엇입니까 (그것이 무엇입니까?)? – florosus

+0

'END IF'는 조건부 프로그램 부분 블록을 종료하는 데 사용됩니다. 'IF ... THEN'과'END IF' 사이의 모든 것은 조건 (예 :'var1 = 1')이 참일 때만 실행됩니다. 여기 좀보세요 : http://www.freebasic.net/wiki/wikka.php?wakka=KeyPgEndif – MrSnrub