Nybörjare!i JAVA..... hjälp snälla...!

Permalänk
Medlem

Nybörjare!i JAVA..... hjälp snälla...!

har sådant upp...och min lösning som tyvärr funakr inte , varför???vad är fel????

Fixa så att man efter att man matat in två tal och besvarat frågan får en ny fråga, denna gång ifall man vill fortsätta. Svarar man JA på frågan får man mata in två nya tal och besvara frågan etc. tills man på frågan svarar NEJ.

Ange två tal: 14 9
Vad blir 14 + 9 ? 23
Rätt svar!

Vill du förtsätta? JA

Ange två tal: 23 19
Vad blir 23 + 19 ? 43
Fel svar - det rätta svaret är 42

Vill du fortsätta? NEJ

import java.util.*;
public class upp4a{
public static void main(String[]args){

Scanner scan = new Scanner(System.in);

Boolean ja= true;
String svar=null;
do
{

System.out.print("Ange tva tal: ");
int tal1 = scan.nextInt();
int tal2 = scan.nextInt();
System.out.println("Vad blir"+tal1+"+"+tal2+"?");
int resultat = scan.nextInt();

int summa=tal1+tal2;

if(summa == resultat)
System.out.println("Rätt svar!");
else
System.out.println("Fel, Prova igen!Det ratta svaret ar:"+summa);

System.out.print("Vill du forstatta spela?");

svar = scan.nextLine();

}while(ja.equals(svar));

System.out.println();
}
}

glömde ett ord
Permalänk
Medlem

"ja.equals(svar)" blir väl aldrig sant eftersom det ena är en String och det andra en Boolean.

Visa signatur

Core i7 7700K | Titan X (Pascal) | MSI 270I Gaming Pro Carbon | 32 GiB Corsair Vengeance LPX @3000MHz | Samsung 960 EVO 1TB

Permalänk
Medlem

ja, jag tänkte på det att det är olika datatyper...men hur gör man då?
kan inte fixa det...fastnat helt. kan du ge mig nån förslag?

Permalänk
Medlem

svar.equals("JA") kanske funkar bättre

Visa signatur

Core i7 7700K | Titan X (Pascal) | MSI 270I Gaming Pro Carbon | 32 GiB Corsair Vengeance LPX @3000MHz | Samsung 960 EVO 1TB

Permalänk
Medlem

med tanke att det är samma datatyp så ja men det är inte löser problemet tyvärr programmet inte skriver ut allting rätt....
den looper inte alls....
nån hjälp med det!?

Permalänk
Medlem

Orkar inte tyda din "svenska".
Men varför har du inte bara en bool som är true så länge svar är ja, annars false. Loopen fortsätter så länge som bool är true.

Permalänk
Medlem
Skrivet av Izabela:

med tanke att det är samma datatyp så ja men det är inte löser problemet tyvärr programmet inte skriver ut allting rätt....
den looper inte alls....
nån hjälp med det!?

Initiera svar med:

String svar="JA";

istället för

String svar=null;

---
Vet du ens hur do{...}while() fungerar?

Visa signatur

I'm Winston Wolfe. I solve problems.

Permalänk
Medlem

ja, en boolean, det har jag provat också men saken är att jag vet inte hur jag ska skriva det i java .... när jag skrev då alltid var nåt fel där....
Jag tyvärr kan inte skriva bra i java ....än....därför frågar jag här....
hur kunde tanke som du skrev ser ut i java koden?

Permalänk
Medlem
Skrivet av matti4s:

Initiera svar med:

String svar="JA";

istället för

String svar=null;

---
Vet du ens hur do{...}while() fungerar?

Hur jag ska förklara det...ja, jag tror det fast den i sig räcker ju inte att få den igång eller? krävs lite mer
och nu blev det krångligt för mig med String och Boolean och jämföra de två och olika datyper...vet inte hur gör man...

Permalänk
Medlem

Du behöver egentligen inte ha en boolean variabel alls, det räcker med ett booleskt uttryck. Exempel på booleska uttryck:

int a = 5; int b = 17; a == 5; // ger true b == a; // ger false a+b == 22; // ger true true == false; // ger false String foo = "bar"; foo.equals("bar"); // ger true

Samma metodik kan du använda dig av i while-loopar:

while (a == 5) ... // loopar så länge variabeln a har värdet 5; while (foo.equals("NO")) ... // så länge som foo är detsamma som NO

Du kan inte jämföra saker av olika typ hursomhelst:

int i = 5; String str = "5"; boolean b = true; i == str; // inte tillåtet b == "true"; // detta är vad du försöker göra. det går inte eftersom variabeln b inte innehåller ett strängobjekt.

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Medlem

ok tack för bredd förklaring...

men saken är att jag vet inte hur jag ska jämföra svaret som användare matar in, JA eller NEJ med villkor.
Så länge do-loopen "missar" den biten och hoppar över svarte från användare.

Ny kod....och svar:

import java.util.*;
public class upp4a{
public static void main(String[]args){

Scanner scan = new Scanner(System.in);

String ord = "ja";
do

{

System.out.print("Ange tva tal: ");
int tal1 = scan.nextInt();
int tal2 = scan.nextInt();
System.out.println("Vad blir"+tal1+"+"+tal2+"?");
int resultat = scan.nextInt();

int summa=tal1+tal2;

if(summa == resultat)
System.out.println("Rätt svar!");
else
System.out.println("Fel, Prova igen!Det ratta svaret ar:"+summa);

System.out.println();

System.out.print("Vill du forstatta spela?");

String svar = scan.nextLine();

System.out.println();

}while(ord.equals("ja")); //Det här - känns fel...eller betyder det att det som matas in
//jämförs här , eller?

System.out.println();
}
}

Ange tva tal: 22
2
Vad blir22+2?
24
Rõtt svar!

Vill du forstatta spela? // den vänta inte här tills användare svarar med JA eller NEJ.... den bara kör vidare
Ange tva tal: 2 2 // Var är felet????
Vad blir2+2?
4
Rõtt svar!

Vill du forstatta spela?
Ange tva tal:

Permalänk
Medlem

Läs din lärobok, kolla andras källkoder och fråga din lärare. När du har så OTROLIGT dåliga kunskaper inom programmering så är det nästan ingen ide att hjälpa dig eftersom du inte har de basala kunskaperna att ta till dig svaren. Har du ett genuint intresse för programmering så är det den hårda vägen att gå. Om du tvingats in i programmering pga skolan så får du helt enkelt ta ditt IG om du inte klarar av det

Jag redigerade bort delar av inlägget som var lite väl otrevliga.
Permalänk
Medlem

den som vill hjälpa mig svara gärna här annars behåll sina åsikter åt sig själv.

Permalänk
Medlem

Du definierar variabeln ord som en String innehållandes texten "ja":
String ord = "ja";

I slutet av din do ... while()-loop kollar du om variabeln ord fortfarande innehåller ja med raden while (ord.equals("ja"));

När ändrar du innehållet i ord?

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Medlem
Skrivet av Izabela:

den som vill hjälpa mig svara gärna här annars behåll sina åsikter åt sig själv.

"Du" kommer inte lösa ditt programmeringsproblem föräns 90% av det du skrivit har skrivits om av forumdeltagande här. Sen kommer man inte se av dig här föräns du fått en ny uppgift.
Detta upprepas otaliga gånger året runt. Och ger man tips som inte på en gång ger resultat (skriva hela koden åt dom) så blir man en hemsk person.

Det är inga åsikter utan fakta, det går nämligen att spåra det i forumet.

Permalänk
Medlem

Om jag är den som kan inget, varför ens du bryr sig att skriva här och tar du din värdefulla tid att skriva sånt som ingen är intresserat av... kanske du har tråkigt och vill du skapa debatt om vad betyder nybörjare. Vill du skrämma mig bort härifrån eller ? Är det forum för manschauvinister bara? ... ska jag lägga allting ner för att du vill det, gömma mig och våga inte fråga andra om hjälp? Där forum är ju för det. ....glöm det. tack för dig.

p.s. tips att läsa noga böcker det är ju bra men att gå på, att gifta sig rik, IG, etc...det är ju bara lågt! och det är åsikt.
Slut på debatten!

Permalänk
Medlem

Ok, för att återgå till 100% on topic.

import java.util.*; public class upp4a { public static void main(String[]args){ Scanner scan = new Scanner(System.in); String svar; do { System.out.print("Ange tva tal: "); int tal1 = scan.nextInt(); int tal2 = scan.nextInt(); System.out.println("Vad blir"+tal1+"+"+tal2+"?"); int resultat = scan.nextInt(); int summa=tal1+tal2; if(summa == resultat) System.out.println("Ratt svar!"); else System.out.println("Fel, Prova igen! Det ratta svaret ar:"+summa); System.out.println(); System.out.print("Vill du forstatta spela?"); svar = scan.nextLine(); svar = scan.nextLine(); System.out.println(); } while(svar.equals("ja")); System.out.println(); } }

Testkompilerat och fungerar. Nu ska vi se om du löser det snyggare (för jag måste iväg och ta en ducsh).

Permalänk
Medlem

svar.equals("ja") borde väl snarare ändras till svar.compareTo("ja")

Permalänk
Medlem
Skrivet av guth:

svar.equals("ja") borde väl snarare ändras till svar.compareTo("ja")

.equals() returnerar en boolean medan .compareTo() returnerar en int. så nej, det mest lämpliga är equals, eller faktiskt .equalsIgnoreCase()

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Medlem

Hej killar, tack... precis kommit hem tillbaka från tand kliniken där var jag opererat och hoppas att jag är inte helt bedövat så orkar jag tänka lite... ska kolla alla svar snart.tack så jätte mycket!

Permalänk
Medlem

tack så mycket, till alla!!!....allting funkar fint och jag lärde mig massor!
vad snyggt med equalsIgnoreCase(); Tecknocide verkligen tack för alla dina förklaringar.
Nu vet jag även varför ixam skrev två gånger " svar = scan.nextLine();"
nu ska jag kämpa vidare med JAVA. men ses snart, säkert

Permalänk
Medlem

Tacka vet jag ruby

Visa signatur

Samsung TFT 22" 2233RZ Svart 120HZ - 640GB Western Digital Black 64MB SATA III - Corsair 4GB (2x2048MB) 1333MHz XMS3-10600 - AMD Phenom2 X4 965 3,4GHz Black Edition - Gigabyte GeForce GTX 460 1GB OC - Fractal Design Define R3, Svart - Corsair TX 650W 80+ - Gigabyte GA-870A-UD3 - Cooler Master Hyper 212 Plus

Permalänk
Medlem

Hej där...

Då lär jag mig vidare java men fastnat på en sak nämligen, å,ä,ö tecken.
Snälla om nån kan hjälpa mig lite med nån ledtråd hur jag kan enkelt göra att de bokstäverna kan jämföras med inmatande text. Att dator ska ser de överhuvud- taget.
Uppgift plus min kod :
/*Skriv ett litet Java-program som ber användaren att mata in
en textsträng och som sedan skriver ut hur många tecken som fanns
i textsträngen samt hur många vokaler som fanns.
Räkna här med svenska bokstäver,
alltså vokalerna a, e, i, o, u, y, å, ä och ö.
Givetvis skall det inte spela någon roll om man skriver små
eller STORA bokstäver, alltså är både a och A en vokal.

När programmet körs kan det t.ex. se ut så här:

Skriv en rad: Hej hopp, detta är min textrad - RÄKSMÖRGÅS!!!
Raden innehöll 46 teckan varav 11 var vokaler*/

import java.lang.*;
import java.util.*;
public class upp7{

public static void main(String[]args){

Scanner scan= new Scanner(System.in);

String text;

System.out.print("Skriv en mening: ");

text = scan.nextLine();

text = text.toLowerCase();

int count =0;

for(int v=0; v<text.length(); v++){

char te = text.charAt(v);

if (te=='a'||te=='e'||te=='i'||te=='o'||te=='u'||te=='y'||te=='å'||te== 'ä'||te=='ö')

count++;

}

System.out.println("atanl vokaler:"+count);

System.out.println("Antal tecken i meningen ar: "+text.length());
System.out.println();

}
}

Permalänk
Medlem

Det funkar ju perfekt...

import java.util.*; public class upp7 { public static void main(String[] args) { Scanner scan = new Scanner(System.in); String text; System.out.print("Skriv en mening: "); text = scan.nextLine(); text = text.toLowerCase(); int count = 0; for (int v = 0; v < text.length(); v++) { char te = text.charAt(v); if (te == 'a' || te == 'e' || te == 'i' || te == 'o' || te == 'u' || te == 'y' || te == 'å' || te == 'ä' || te == 'ö') count++; } System.out.println("atanl vokaler:" + count); System.out.println("Antal tecken i meningen ar: " + text.length()); System.out.println(); } }

Visa signatur

I'm Winston Wolfe. I solve problems.

Permalänk
Medlem

vad???! har du provat med svenska å ä ö??? skriv "Göra "eller nåt ....funka det hos dig? så har jag kanske fel inställning på min dator? eller? hmmm

Permalänk
Medlem

Ja, jag kan se redan från koden att den fungerar korrekt. Vad använder du för program?

Edit:

Provkörde ändå, här har du vad tolken säger:

Skriv en mening: ååääöö
Antal vokaler:6
Antal tecken i meningen är: 6

Visa signatur

Samsung TFT 22" 2233RZ Svart 120HZ - 640GB Western Digital Black 64MB SATA III - Corsair 4GB (2x2048MB) 1333MHz XMS3-10600 - AMD Phenom2 X4 965 3,4GHz Black Edition - Gigabyte GeForce GTX 460 1GB OC - Fractal Design Define R3, Svart - Corsair TX 650W 80+ - Gigabyte GA-870A-UD3 - Cooler Master Hyper 212 Plus

Permalänk
Medlem

Har ni nån tips för bra texteditor då som kompilerar o exekverar???

Permalänk
Medlem

Netbean. Kan fås tillsammans med JDKn.

Permalänk
Medlem

Jag personligen gillar Eclipse när man kodar Java. Grymt bra.
Mindre bra med Ruby dock

Visa signatur

Samsung TFT 22" 2233RZ Svart 120HZ - 640GB Western Digital Black 64MB SATA III - Corsair 4GB (2x2048MB) 1333MHz XMS3-10600 - AMD Phenom2 X4 965 3,4GHz Black Edition - Gigabyte GeForce GTX 460 1GB OC - Fractal Design Define R3, Svart - Corsair TX 650W 80+ - Gigabyte GA-870A-UD3 - Cooler Master Hyper 212 Plus

Permalänk
Medlem
Skrivet av iXam:

Netbean. Kan fås tillsammans med JDKn.

Håller med, netbeans funkar riktigt bra