6 svar
34 visningar
Einsteinnr2 är nöjd med hjälpen!
Einsteinnr2 137
Postad: 19 feb 2020

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 2375 – Moderator
Postad: 19 feb 2020

"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 7663
Postad: 19 feb 2020

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 137
Postad: 19 feb 2020

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 137
Postad: 19 feb 2020 Redigerad: 19 feb 2020

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 7663
Postad: 19 feb 2020

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 137
Postad: 19 feb 2020
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 Avbryt
Close