2010-12-28 6 views
1

Ich habe eine Variable innerhalb einer if-Anweisung definiert und ich versuche, darauf außerhalb dieser if-Anweisung zuzugreifen. jetzt sagt der Fehler, dass es das Symbol nicht finden kann, weil es als eine Intentionsvariable definiert ist, gibt es eine Möglichkeit, es zu ändern, so dass ich darauf zugreifen kann, außerhalb der Variablen? Heres der CodeWie kann ich auf eine Variable außerhalb einer if-Anweisung in Java zugreifen

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

Sie nicht wirklich verstehen, das Konzept des Umfangs nicht wahr? – jcolebrand

+1

Entschuldigung, ich bin ein Neuling in der High School, ich bin nur auf der Suche nach ein paar Extras zum Arbeiten. – themanepalli

+0

~ Dann in diesem Fall in Betracht ziehen, auf Bereich zu lesen. Außerdem würde ich Ihnen wärmstens empfehlen, "Code Complete 2" als "persönliches Semester" zu lesen, bevor Sie viel mehr Code schreiben. In der High School zu sein und Code schreiben zu wollen, wird es an einigen Wochenenden schnell gelesen. Mach wenigstens die ersten 400 Seiten. Der Rest des Buches ist vielleicht nicht da, wo Sie gerade sind, aber diese werden ziemlich gut alle Ihre wichtigen Basen abdecken. ~~ Zusätzlich, sobald Sie ein paar mehr Upvotes verdient haben, kommen Sie in den Chat-Bereich und werden süchtig;) – jcolebrand

Antwort

3

Verwendung können sie verwenden, wie

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

Java verwendet block Ebene lokale Variable Bereiche. Eine Variable muss in einem Bereich deklariert werden, der für alle Orte, an denen Sie sie verwenden möchten, gemeinsam ist.

In Ihrem Fall ist die Variable der Gültigkeitsbereich der Variablen buyOrder auf den Block if((e.getSource()==userOrder2)&& (orderType==1)){...} beschränkt, daher ist sie außerhalb des if-Blocks nicht verfügbar. Hier müssen wir die Variable auf der Seite if((e.getSource()==userOrder2)&& (orderType==1)){...} deklarieren, damit auf sie außerhalb des Blocks zugegriffen werden kann.

+0

ok danke! es funktionierte! bin dankbar! – themanepalli

1

Deklarieren Sie es außerhalb (vor) der if Anweisung.

+0

Sorry, ich hätte es klarer gemacht. Ich möchte nur die Variable erstellt werden, wenn sie diese Parameter erfüllt, also muss es innerhalb der if-Anweisung richtig sein? – themanepalli

+0

Nein. Dies liegt daran, dass der Gültigkeitsbereich der Variablen 'orderType' auf den if-Block beschränkt ist, in dem sie definiert ist, so dass auf sie nicht außerhalb zugegriffen werden kann. Wenn die Variable nur dann erstellt wird, wenn die Bedingung 'if ((e.getSource() == userOrder2) && (orderType == 1))' erfüllt ist, dann denke ich an die Bedingung 'if (orderType == 1 && stockPrice <= buyOrder)) 'sollte auch innerhalb von 'if ((e.getSource() == userOrder2) && (orderType == 1))' sein. –

+0

oh ok, das macht Sinn, danke nochmal! – themanepalli

0

Außerhalb der if-Anweisung deklarieren.

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

Ich versuchte das, aber ich bekomme eine Fehlermeldung, die besagt, dass die Variable bereits definiert ist – 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. 
} 
} 
Verwandte Themen