Som besökare på Hamsterpaj samtycker du till användandet av s.k. cookies för att förbättra din upplevelse hos oss. Jag förstår, ta bort denna ruta!
Annons

Programmering a hjälp

Skapad av Kissimurra, 2012-10-23 19:59 i Webbutveckling & Programmering

2 312
11 inlägg
1 poäng
Kissimurra
Visningsbild
P 30 Umeå Hjälte 3 761 inlägg
0
Hejsan! Håller på att plugga till ett prov men får inte min do while sats att funka, kan någon se mitt fel?
idén är att den ska fråga efter 2 tal och räkna ihop dem med ett räknesätt som personen själv väljer.
Problemet är att min while sats inte funkar, står att variabel svar1 inte finns...

Ett stycke javascript-kod:
package testarlite;
import inmatning.Keyboard;

public class exempel79 {
public static void main (String[]args){
System.out.println("ange tal 1");
double tal1=Keyboard.readDouble();
System.out.println(" ange tal 2");
double tal2=Keyboard.readDouble();
System.out.println("ange vilket räknesätt du vill använda.");
do{
char rs=Keyboard.readChar();
switch (rs){
case '+':
System.out.println("ditt tal är"+(tal1+tal2));
break;
case '-':
System.out.println((tal1-tal2));
break;
case '*':
System.out.println(tal1*tal2);
break;
case '/':
System.out.println(tal1/tal2);
break;
default: System.out.println("fel inmatning");
System.out.println("vill du köra igen? j/n");
char svar1=Keyboard.readChar();
}
} while (svar1=='j');
}
}

Ingen status

Är reklamen ivägen? Logga in eller registrera dig så försvinner den!

Vincent509
Visningsbild
P 34 Karlstad Hjälte 325 inlägg
1
flytta ut deklareringen av svar1 så att den ligger före do-while satsen, om du deklarerar den inne i do-while satsen så kommer den bara att "synas" i den satsen
Kissimurra
Visningsbild
P 30 Umeå Hjälte 3 761 inlägg
Trådskapare
0

Svar till Vincent509 [Gå till post]:
Fast om jag gör det så kommer den ju fråga om jag vill köra igen innan jag ens räknat hans tal. Blir :

Ange tal 1.
"5"
Ange tal 2.
"10"
ange vilket räknesätt du vill använda
vill du köra igen?


Ingen status

Gurrewe
Visningsbild
P 30 Bromma Bästis För många inlägg
0
Svar till Kissimurra [Gå till post]:
Ett stycke javascript-kod:
package testarlite;
import inmatning.Keyboard;

public class exempel79 {
public static void main (String[]args){
System.out.println("ange tal 1");
double tal1=Keyboard.readDouble();
System.out.println(" ange tal 2");
double tal2=Keyboard.readDouble();
System.out.println("ange vilket räknesätt du vill använda.");

do {
char rs=Keyboard.readChar();
switch (rs){
case '+':
System.out.println("ditt tal är"+(tal1+tal2));
break;
case '-':
System.out.println((tal1-tal2));
break;
case '*':
System.out.println(tal1*tal2);
break;
case '/':
System.out.println(tal1/tal2);
break;
default:
System.out.println("fel inmatning");
break;
}

System.out.println("vill du köra igen? j/n");
char svar1=Keyboard.readChar();

} while (svar1 == 'j');
}
}


Jag kan inte java. Men felet är att du kör svar1-inputen i din default-del av din switch. Den körs ju bara när du inte får några matchar.
Jag flyttade den rätt och snyggade upp lite.

/party

Kissimurra
Visningsbild
P 30 Umeå Hjälte 3 761 inlägg
Trådskapare
0

Svar till Gurrewe [Gå till post]:
Nä får fortfarande fel *Suck*

Ingen status

Gurrewe
Visningsbild
P 30 Bromma Bästis För många inlägg
0

Svar till Kissimurra [Gå till post]:
Vad händer kontra vad vill du ska hända?

/party

Kissimurra
Visningsbild
P 30 Umeå Hjälte 3 761 inlägg
Trådskapare
0

Svar till Gurrewe [Gå till post]:
det som händer är att variabeln blir röd så jag inte kan använda den.
Det jag vill är ju att om han skriver j som körs programmet igen, annars avslutas det.

Ingen status

gaminggirl
Visningsbild
F 38 Lund Hjälte 8 084 inlägg
0

Svar till Kissimurra [Gå till post]:
Men om det är som i vanliga Java finns variabeln inte där du vill använda den, du måste skapa den innan do även om du inte ger den ett värde just då...

Ingen status

Kissimurra
Visningsbild
P 30 Umeå Hjälte 3 761 inlägg
Trådskapare
0

Svar till gaminggirl [Gå till post]:
Alltså jag är för trött för det här.. vadå, ska jag bara göra en variabel som heter svar1? Då kommer den ju inte att läsa in det personen skriver

Ingen status

gaminggirl
Visningsbild
F 38 Lund Hjälte 8 084 inlägg
0
Svar till Kissimurra [Gå till post]:
Jo, du kan ju fortfarande göra
"svar1=Keyboard.readChar();" inne i do-satsen
du bara skapar den lite tidigare så den finns även när du gör din while.

Ingen status

Nikkster-
Visningsbild
P Hjälte 117 inlägg
0
Som det verkar nu skall man alltså endast kunna pendla mellan olika operatorer? Nåväl, deklarera din svar1-variabel tillsammans med dina andra och initiera variabeln precis efter du påbörjat din do-sats så är ditt problem löst. Förresten, tycker du inte det vore lämpligt att ha med "System.out.println("ange vilket räknesätt du vill använda.");" i loopen? :)

Ingen status


Forum » Datorer & IT » Webbutveckling & Programmering » Programmering a hjälp

Ansvariga ordningsvakter:

Användare som läser i den här tråden just nu

1 utloggad

Skriv ett nytt inlägg

Hej! Innan du skriver om ett potentiellt problem så vill vi påminna dig om att du faktiskt inte är ensam. Du är inte onormal och världen kommer inte att gå under, vi lovar! Så slappna av och gilla livet i några minuter - känns det fortfarande hemskt? Skriv gärna ner dina tankar och frågor, vi älskar att hjälpa just dig!

Den här tråden är äldre än Rojks drömtjej!

Det senaste inlägget i den här tråden skrevs för över tre månader sedan. Är du säker på att du vill återuppliva diskussionen? Har du något vettigt att tillföra eller passar din fråga i en ny tråd? Onödiga återupplivningar kommer att låsas så tänk efter en extra gång!

Hjälp

Det här är en hjälpruta

Här får du korta tips och förklaringar om forumet. Välj kapitel i rullningslisten här ovanför.

Rutan uppdateras automagiskt

När du använder funktioner i forumet så visas bra tips här.


Annons
Annons
Annons
Annons