简体   繁体   中英

Java: variable has not been initialized error

I keep getting this error and i can't figure out why:

Glosor.java:102: error: variable språk1 might not have been initialized JOptionPane.showInputDialog(null, språk1 + ":" + språk1glosor + "\\n" + språk2 + ":"); ^ Glosor.java:102: error: variable språk2 might not have been initialized JOptionPane.showInputDialog(null, språk1 + ":" + språk1glosor + "\\n" + språk2 + ":");

This is my code:

javax.swing.*;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;
import java.io.*;

public class Glosor {
public static void main(String[] args) throws IOException {

List<String> gloslista1 = new LinkedList<String>(Arrays.asList());
List<String> gloslista2 = new LinkedList<String>(Arrays.asList());

  String inputStr1 =     JOptionPane.showInputDialog(null,
                                               "**********************************" + "\n\n" + 
                                               "1. Skapa glosövning" + "\n\n" + 
                                               "2. Starta glosövning" + "\n\n" +
                                               "3. Avsluta" + "\n\n" + 
                                               "**********************************");   
  int input1 = Integer.parseInt(inputStr1);


     switch (input1) {

        case 1:

        String övningsnamn = JOptionPane.showInputDialog(null, "Vad heter övningen?");
        String språk1 = JOptionPane.showInputDialog(null, "Språk 1?");      
        String språk2 = JOptionPane.showInputDialog(null, "Språk 2?");

           while (true) {

           String glosa1 = JOptionPane.showInputDialog(null, "Skriv in glosa på " + språk1 + "\n\n" + 
                                                             "När du är klar skriv klar i rutan");               
              if(glosa1.equals("klar")) {
              break;

              }
              else {          
              String glosa2 = JOptionPane.showInputDialog(null, "Skriv in glosa på " + språk2); 


              gloslista1.add(glosa1);
              gloslista2.add(glosa2);
              }                      

           }

              String filnamn1 = "språk1ord.txt";
              String filnamn2 = "språk2ord.txt";

              PrintWriter utström1 =  new PrintWriter
                                     (new BufferedWriter
                                     (new FileWriter(filnamn1)));
              //Skapar en text fil för glosorna på svenska

              PrintWriter utström2 =  new PrintWriter
                                     (new BufferedWriter
                                     (new FileWriter(filnamn2)));
              //Skapar en text fil för glosorna på franska   

                 for(int i = 0; i<=gloslista1.size()-1; i++) {

                 utström1.println(gloslista1.get(i));
                 utström2.println(gloslista2.get(i));
                 //Skriver in glosor i text filerna

                 }
                 utström1.close();
                 utström2.close();





        case 2:
        String inputStr2 = JOptionPane.showInputDialog(null, 
                                               "**********************************" + "\n\n" + 
                                               "1. Starta glosövning" + "\n\n" + 
                                               "2. Avsluta" + "\n\n" + 
                                               "**********************************");
        int input2 = Integer.parseInt(inputStr2);

           if(input2 == 1) {

              BufferedReader inström1 = new BufferedReader
                              (new FileReader("svenskaord.txt"));                
              String språk1glosor;

              BufferedReader inström2 = new BufferedReader
                              (new FileReader("franskaord.txt"));                
              String språk2glosor;

                 int counter = 0; 
                 while (true) {
                 counter++;
                 språk1glosor = inström1.readLine();
                 språk2glosor = inström2.readLine();

                    if(counter > gloslista1.size())
                    break;


                 String svar = JOptionPane.showInputDialog(null, språk1 + ":" + språk1glosor + "\n" + språk2 + ":");





                 }                           
           }

You are initializing språk1 in your case 1 and referring to it in both case 1 and case 2. You need to move the initialization out of the case statement:

int input1 = Integer.parseInt(inputStr1);
String övningsnamn = JOptionPane.showInputDialog(null, "Vad heter övningen?");
String språk1 = JOptionPane.showInputDialog(null, "Språk 1?");      
String språk2 = JOptionPane.showInputDialog(null, "Språk 2?");

switch (input1) {

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM