有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java局部变量名词可能尚未初始化

我得到这个“局部变量名词可能尚未初始化”错误,我不知道为什么?如果我将变量初始化为null,即noun = null,程序在执行System.out.println("Enter noun: ");时立即崩溃

    int age;
    System.out.println("Enter your age: ");
    age = input.nextInt();
    String name, adjective, adverb, verb, noun;

    if(age > 13) {

        System.out.println("Enter name: ");
        name = input.nextLine();
        input.nextLine();
        System.out.println("Enter adjective: ");
        adjective = input.nextLine();
        System.out.println("Enter noun: ");
        if(noun.equals("dork")){
            System.out.println("That language is not allowed. Exiting");
            System.exit(0);
        } else {
        noun = input.nextLine();
        System.out.println("Enter adverb: ");
        adverb = input.nextLine();
        System.out.println("Enter verb: ");
        verb = input.nextLine();
        System.out.printf("%s is a %s %s. They are always %s %s", name, adjective, noun, adverb, verb);
        }
    } else {
        System.out.printf("Your age is %s and You're still young to access this information", age);


    }

共 (2) 个答案

  1. # 1 楼答案

    问题是:

    if(noun.equals("dork")){
    

    把这条线放在if前面

    noun = input.nextLine();
    
  2. # 2 楼答案

    您收到的错误消息是由于在代码中使用变量noun时,该变量可能尚未初始化。在检查其值之前,可以尝试将noun设置为用户输入。这将消除错误,同时让代码处于更合理、更可读的位置:

    System.out.println("Enter noun: ");
    noun = input.nextLine();
    if (noun.equals("dork")) {
        System.out.println("That language is not allowed. Exiting");
        System.exit(0);
    }