6 svar
173 visningar
Einsteinnr2 behöver inte mer hjälp
Einsteinnr2 301 – Fd. Medlem
Postad: 19 feb 2020 10:01

Hjälp med felmeddelande, JAVA

Hej!

jag undrar vad denna felmeddelande betyder: 

error: variable svar2 might not have been initialized
if (svar2.equals("kött"))

tack på förhand!

joculator 5289 – F.d. Moderator
Postad: 19 feb 2020 10:06

"This error occurs when you are trying to use a local variable without initializing it."

Lite svårt att se vad du gör utan att se din kod.

Laguna Online 30472
Postad: 19 feb 2020 10:07

svar2 kanske inte har fått ett värde när man kommer till den raden, och om kompilatorn tillät det så skulle programmet krascha.

Så någonstans mellan deklarationen av svar2 och den här raden måste koden ändras så att svar2 få ett värde (kanske på flera ställen).

Einsteinnr2 301 – Fd. Medlem
Postad: 19 feb 2020 10:11

jag tror jag har gjort det, detta är min kod

import java.util.*;
public class Main
{
public static void main( String[]args )
{
Scanner sc = new Scanner(System.in);
Mat a = new Mat();
String svar1, svar2;
System.out.println("Vill du BÖRJA NU? ");
svar1 = sc.next();
if (svar1.equals("ja"))
{
System.out.println("Korv eller kött ");
svar2 = sc.next();
 
if (svar2.equals("korv"))
{
a.falukorv();
}
}
if (svar2.equals("kött"))
{
a.kottbullar();
}
}
}

Einsteinnr2 301 – Fd. Medlem
Postad: 19 feb 2020 10:13 Redigerad: 19 feb 2020 10:15

Jag tror felet är på första if-satsen. den klämman som ska "stänga" if-satsen kanske ska vara i slutet av koden

import java.util.*;
public class Main
{
public static void main( String[]args )
{
Scanner sc = new Scanner(System.in);
Mat a = new Mat();
String svar1, svar2;
System.out.println("Vill du BÖRJA NU? ");
svar1 = sc.next();
if (svar1.equals("ja"))
{
System.out.println("Korv eller kött ");
svar2 = sc.next();
 
if (svar2.equals("korv"))
{
a.falukorv();
}
 
if (svar2.equals("kött"))
{
a.kottbullar();
}
}
}
}

såhär istället, annars måste jag nog sätta ett till värde på svar2 som du sa!

Laguna Online 30472
Postad: 19 feb 2020 10:22

Just det. Ett sätt att skriva är att deklarera svar2 inuti blocket som kommer efter testet av svar1. Då skulle det inte gå att göra det där felet.

Einsteinnr2 301 – Fd. Medlem
Postad: 19 feb 2020 10:29
Laguna skrev:

Just det. Ett sätt att skriva är att deklarera svar2 inuti blocket som kommer efter testet av svar1. Då skulle det inte gå att göra det där felet.

aa det är sant, aldrig tänkt på det!

Tack så mycket för hjälpen!

Svara
Close