Gå til innhold

Hvorfor skriver koden ut dette?


Anbefalte innlegg

Hei,

 

Jeg holder på å jobbe med eksamen i java, og jeg lurer på om noen har lyst til å hjelpe meg med følgende spørsmål:

- Hvorfor skrives tallet 1 ut i kodebiten nedenfor? (Jeg ville egentlig tro at det var tallet 2 som burde skrives ut???)

 

public class Oppg1a {

 

private static int tall =1;

public static void main(String[] args){

 

if (tall>0){

//TEST: System.out.println(tall); // 1

int tall =2;

//TEST: System.out.println(tall); // 2

}

System.out.println(tall); // 1

 

}}

Lenke til kommentar
Videoannonse
Annonse

It's about scope...

 

int tall er deklarert utenfor funksjonen, men inni brackets deklarerer du en ny int tall som settes til 2... den eksisterer ikke utenfor scopet sitt, som er inni brackets. Når du skriver ut "tall" utenfor scopet til din nye variabel, skriver den ut den variabelen den har tilgang til, altså den første "tall" som er det samme som før...

 

Hvis du hadde skrevet "tall = 2" istedenfor "int tall = 2" hadde det blitt skrevet ut 2 :)

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...