Gå til innhold

[Løst] Gjøre for-løkke til while-løkke


Anbefalte innlegg

Videoannonse
Annonse

Hvis noen har tid og mulighet til å forklare hvordan de kommer frem til svaret på disse oppgavene, hadde det vært fantastisk!

 

Del 1

For hver av de følgende deloppgavene skal du fortelle hva som skrives ut av koden, eller forklare hvorfor den ikke vil kompilere hvis du mener det er tilfelle.

 

 

1. System.out.println(1+2);

2. System.out.println(”1”+”2”);

 

3.

int n = 2;

int m = n + 1;n += m*2;System.out.println(n);n = 0;
4.int tall = 0;for (int i=5; i>0; i--) {
     for (int j=i; j>0; j--) {          tall--;

} }

System.out.println(tall);

5.

int x = 0

for (int i = 1; i < 10; i = i + 1) {
     System.out.println(x);

x = i * 2; }

 

6.

int x;

       int y = ”7”;       y = x + ”3”;       System.out.println(x + y);

 


Ville ikke det mer korrekte være (rent oversatt):

int x = 0;
int i = 1;
while(i < 10){
  System.out.println(x);
  x = i * 2;
  i = i+1;
}
Inkremeteringa skjer normalt i slutten av løkka?

 

Hvordan kom du frem til dette? :)

Lenke til kommentar

Jo stemmer.

 

Vi liker ikke så godt å gjøre leksene til folk. Om du har noen spesifikke spørsmål så kan jeg gjerne hjelpe.

 

Dette er ikke lekser, er for å få en fasit på en tidligere eksamensoppgave slik at vi vet at det vi holder på med faktisk er rett.

Lenke til kommentar

Det er fortsatt svært nærme leksehjelp. En bedre fremgangsmtåe: prøv å løse oppgavene selv, og legg gjerne frem din løsning samt en spesifikt spørsmål du lurer på rundt hvorfor du kanskje har tenkt feil? Eller er den en spesifikk problemstilling du har problemer med og trenger hjelp med?

 

Angående konvertering fra for-loop til while-loop er det en enkel prosess, som alltid skjer på samme måte, med et enkelt unntak:

 

Ta denne eksempel-koden:

for (int i=0; i<10; i++) {
    doSomething();
}
Hvis du setter deg ned og spør deg selv, hva betyr dette? Hva skjer her? Og forklarer i norsk kommer du frem til noe.

Sett i til verdien 0
Så lenge i er mindre enn 10:
    kall funsjonen doSomething()
    øk i med 1
Det som står i begynnelsen av for-statementet (altså int i=0) skjer før selve løkka. Det som står i midten forteller hvor lenge løkke skal skje - og det siste leddet er hva som skal skje etter blokken med kode i løkka, og skal derfor settes i slutten.

 

Vi oversetter den norske koden til en while-loop:

int i=0; // Sett i til verdien 0
while(i < 10) {// så lenge i er mindre enn 10
    doSomething(); // kall funksjonen doSomething()
    i++; // øk 1 med 1
}
Endret av etse
Lenke til kommentar

Det er fortsatt svært nærme leksehjelp. En bedre fremgangsmtåe: prøv å løse oppgavene selv, og legg gjerne frem din løsning samt en spesifikt spørsmål du lurer på rundt hvorfor du kanskje har tenkt feil? Eller er den en spesifikk problemstilling du har problemer med og trenger hjelp med?

Det er ikke fordi jeg er lat og ikke gidder å lese selv, men jeg vil bare bli ferdig med eksamen og derav JAVA. Var bare et enkelt spørsmål :huh: Har svart på samtlige av oppgavene, men det er ved hjelp av BlueJ, som vi ikke har tilgang til på eksamen.

Lenke til kommentar

Men still heller spesifikke spørsmål - og bare komme med en eksamensoppgave og be folk løse den for deg og komme frem til en fremgangsmåte får det til å virke som du ikke har gjort en forsøk på å løse den selv en gang. I tillegg er det meget tidkrevende og svarre på så mye, og hvorfor skal vi bruke mye tid på å hjelpe en totalt fremmed person om du ikke en gang kan vise at du har lagt egeninnsats i spørsmålet? (Vi er ikke ansatte hjelpelærere)

 

Korte spesifikke spørsmål, gjerne hvor du viser hva du har tenkt og hva du ikke helt forstår er noe du trolig vil få mye mer hjelp med.

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å
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...