当前位置: 首页 > 知识库问答 >
问题:

无法获取已声明的字符串[重复]

公西毅
2023-03-14

我无法打印已声明的字符串。以下是代码:

public class ignCalcu {

    public static void main (String[] args){
        Scanner input = new Scanner(System.in);

        System.out.println("Welcome to CalcuLegends!");
        while (true) {
            System.out.println("Before you use the Calcore, would you like to set an IGN first?");
            System.out.println("Yes or No?");
            String start = input.nextLine();
            if (start.equals("Yes") || start.equals("yes")){
                System.out.println("What is your favorite color?");
                String color = input.nextLine();
                System.out.println("What word describes you the best?");
                String word = input.nextLine();
                System.out.println("Think of an animal other than dog or cat.");
                String animal = input.nextLine();
                input.close();
         
                String ign = (" "+color+"_"+word+"_"+animal);
                System.out.println("Your IGN is" + ign );
                break;
            }
            else if (start.equals("No") || start.equals("no")){
                break;
            }
            else;
            System.out.println("Invalid response. Please try again.");
        }
        System.out.println("hi "+ ign + "!");
    }
}

下面是错误:

source_file.java:33: error: cannot find symbol
         System.out.println("hi "+ ign + "!");
                                   ^
  symbol:   variable ign
  location: class ignCalcu
1 error

共有1个答案

姜泳
2023-03-14

你超出了范围。如果不想在循环外访问ign,则需要在循环外声明它。

Java范围

public static void main (String[] args) {
        Scanner input = new Scanner(System.in);
        String ign;

        System.out.println("Welcome to CalcuLegends!");
        
        while (true){
            ...

            ign = (" " + color + "_"  + word + "_" + animal);
        }
        
        System.out.println("hi "+ ign + "!");
}
 类似资料:
  • 我正在制作一个简单的基于文本的rpg。我收到了这个错误:。当我从字符串中删除public修饰符时,它修复了表达式的非法开始错误,但创建了两个错误。

  • 问题内容: 这些声明和和之间有什么区别? 问题答案: 总是在堆上创建一个新对象 使用字符串池 试试这个小例子: 为避免在堆上创建不必要的对象,请使用第二种形式。

  • 既然String是JAVA中的一个类,那么在不使用新运算符的情况下,test1如何成为String对象呢?另外,当使用新运算符时,内存会分配给新的String(“testing”),那么在test1的情况下,内存是如何分配的呢?另外,当字符串被临时存储时,如果两个字符串具有相同的值,引用的是什么,那么该字符串在字符串临时存储池中存储一次?

  • 试图从GET服务获取响应时,ajax函数总是运行在错误部分。 当浏览器执行代码时,我得到了这个结果: 数据:[对象] 我尝试了dataType:"json",但我得到了这个错误在chrome调试控制台: 请求的资源上没有访问-控制-允许-起源标头。因此,不允许访问源'null'。 并打印警报: data:[对象对象] 文本状态:错误 jqXHR:错误: ****编辑**** 我用这个chrome应

  • 我正在尝试获取字符串中的前两个字符。这是我的代码: 这给了我一个错误: 解析错误:语法错误,第5行C:\laragon\www\karakter_tamamlama.php中出现意外的“%” 为什么我会出错?