java.lang.Error:未解决的编译问题局部变量重复

时间:2020-06-03 14:54:58

标签: java

您好,我收到此错误消息(很可能是由上一个方法“ choixNumerote”引起的):

 java.lang.Error: Unresolved compilation problems: 
    Duplicate local variable tabJoueur
    Syntax error on token "i", delete this token
    sc cannot be resolved

有什么帮助吗?

这是代码:

import java.util.Scanner;

public class Mastermind_ho {
    static String [] TAB_REF_COLORS = {"rouge","jaune","vert","bleu","orange","blanc","violet","fuchsia"};
    static int NB_COLORS = 4;
    static int compteur=0;

    public static void main(String[] args) {

        Scanner sc=new Scanner(System.in);
        String [] combinaisonSecrete = generateRandomCombination();
        for(int i=0;i<4;i++) {
            System.out.println(combinaisonSecrete[i]);
        }

        String [] combinaisonJoueur = choixNumerote();
        for(int i=0;i<4;i++) {
            System.out.println(combinaisonJoueur[i]);
        }

        sc.close();
    }

    // Generate random combination of 4 colors 
    static String [] generateRandomCombination() {
        String [] combination = new String[NB_COLORS];
        int currentPosition = 0;
        while(currentPosition!=NB_COLORS) {
            int indexRandom = (int)(Math.random()*TAB_REF_COLORS.length);
            String color = TAB_REF_COLORS[indexRandom];
            if(!isIn(color, combination)) {
                combination[currentPosition] = color;
                currentPosition++;
            }
        }
        return combination;
    }

    static boolean isIn(String iStringToFind, String [] iTab) {
        int size = iTab.length;
        for(int i=0;i<size;i++) {
            if(iStringToFind.equalsIgnoreCase(iTab[i])) return true;
        }
        return false;
    }

    static String [] choixNumerote() {
        String [] tabJoueur = new String[NB_COLORS];
        for(int i=0;i<NB_COLORS;i++) {
            System.out.println("Choisissez une couleur :");
            String tabJoueur[i]=sc.nextLine();
        }
        compteur++;
        return tabJoueur;
        System.out.println("Il te reste : " + (12-compteur) + "tentative(s)");
    }

}

2 个答案:

答案 0 :(得分:1)

String [] tabJoueur = new String[NB_COLORS];
for(int i=0;i<NB_COLORS;i++) {
    System.out.println("Choisissez une couleur :");
    String tabJoueur[i]=sc.nextLine();
}

您再次使用类型String声明了tabJoueur。更正它:

String [] tabJoueur = new String[NB_COLORS];
for(int i=0;i<NB_COLORS;i++) {
    System.out.println("Choisissez une couleur :");
    tabJoueur[i]=sc.nextLine();
}

此外,您应该学会信任编译器的错误消息,因为它清楚地告诉您问题出在哪里。

答案 1 :(得分:0)

简单,将String中的String tabJoueur[i]=sc.nextLine();删除

enter image description here

相关问题