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!
"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.
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).
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();
}
}
}
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!
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.
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!