2010-12-28 5 views
1

if 문 내부에 변수를 정의했으며 해당 if 문 외부에서 액세스하려고합니다. 이제 오류는 intance 변수로 정의 되었기 때문에 심볼을 찾을 수 없다는 것을 말합니다. 변수를 변경할 수있는 방법이 있습니까? 코드를 heres어떻게하면 Java에서 if 문 외부의 변수를 액세스 할 수 있습니다

if((e.getSource()==userOrder2)&& (orderType==1)) 
{ 
    String buyO= userOrder2.getText(); 
    int buyOrder= Integer.parseInt(buyO); //variable im trying to access 
} 

// trying to use buyOrder in a different if statement 
if(orderType==1 && (stockPrice <= buyOrder)) 
{ 
    orderResult.setText("The Stock" + (stockName2.getText()) + "was bought at" + stockPrice); 
} 
+1

당신은 정말 응 범위의 개념을 이해하지? – jcolebrand

+1

미안 해요 고등학교에서 신입생, 메신저 일할 여분의 것들을 찾고 있어요. – themanepalli

+0

~ 그런 경우에는 범위를 읽어 보시기 바랍니다. 또한 더 많은 코드를 작성하기 전에 "코드 완성 2"를 "개인 학기"로 읽으 실 것을 진심으로 권장합니다. 고등학생이며 코드 작성을 원한다면 몇 주일 동안 빠른 읽기가 될 것입니다. 최소한 처음 400 페이지를 작성하십시오. 책의 나머지 부분은 지금 당장있는 곳이 아닐지 모르지만, 중요한 것들을 모두 다 커버 할 것입니다. ~~ 게다가, 일단 당신이 몇 가지 더 upvotes을 얻었 으면, 채팅 영역에 와서 푹 빠져;) – jcolebrand

답변

3

사용

int buyOrder= 0; 
if((e.getSource()==userOrder2)&& (orderType==1)){ 
    String buyO= userOrder2.getText(); 
    buyOrder= Integer.parseInt(buyO); 
} 
if(orderType==1 && (stockPrice <= buyOrder)) 

자바 block 수준의 지역 변수의 범위를 사용로 사용할 수 있습니다. 변수는 사용하려는 모든 장소에 공통적 인 범위에서 선언되어야합니다.

변수 buyOrder의 범위가 if((e.getSource()==userOrder2)&& (orderType==1)){...} 블록으로 제한되어 있으므로 if 블록 외부에서 사용할 수 없습니다. 여기서 블록 외부에서 변수에 액세스 할 수 있도록 변수를 if((e.getSource()==userOrder2)&& (orderType==1)){...} 외부로 선언해야합니다.

+0

감사합니다. 그것은 일했다! 고마워! – themanepalli

1

if 성명 앞에 선언하십시오.

+0

미안, 내가 명확하게해야합니다. 변수를 만나는 경우에만 변수를 작성하기를 원하므로 if 문 내부에 있어야합니다. – themanepalli

+0

아니요. 변수 'orderType'의 범위가 정의되어있는 if 블록으로 제한되어 있으므로 외부에서 액세스 할 수 없습니다. if ((e.getSource() == userOrder2) && (orderType == 1))'조건이 만족 될 때 변수가 생성된다면 if if (orderType == 1 && (또한 (if e.getSource() == userOrder2) && (orderType == 1))'내부에 있어야합니다. –

+0

오, 그 덕분에 다시 감사드립니다! – themanepalli

0

if 문을 out 문으로 선언하십시오.

int buyOrder; 
if((e.getSource()==userOrder2)&& (orderType==1)) 
{ 
    String buyO= userOrder2.getText(); 
     buyOrder= Integer.parseInt(buyO); //variable im trying to access 
} 

    if(orderType==1 && (stockPrice <= buyOrder)) 
+0

나는 그걸 시도했지만 변수가 이미 정의되었다는 에러 메시지를 받는다. – themanepalli

0
boolean trouble = true; 

int buyOrder; 
if((e.getSource()==userOrder2)&& (orderType==1)) { 
    String buyO= userOrder2.getText(); 
    buyOrder= Integer.parseInt(buyO); //variable im trying to access 
    trouble = false; 
} 

if(orderType==1 && (stockPrice <= buyOrder)) { 
if (!trouble) { 
    //Do what you need. 
} else { 
    //Bail out. 
} 
}