gpt4 book ai didi

java - 当字符串已经被初始化和分配时拒绝声明

转载 作者:行者123 更新时间:2023-12-02 03:48:12 25 4
gpt4 key购买 nike

我试图接受用户的石头、布、剪刀选择(输入为 r、p 或 s),但是当我尝试更改并调用它时,它给了我一个错误。

这是我的代码:

package labs10;

import java.util.Scanner;
import static java.lang.System.*;

public class RPSRunner
{
public static void main(String args[])
{
Scanner kb = new Scanner(System.in);
String full;
String response;
String player = "";

out.print("Select [R,P,S] :: ");
response = kb.next();
if (response.equals("R")) {
full = "Rock";
} else if (response.equals("P")) {
full = "Paper";
} else if (response.equals("S")) {
full = "Scissors";
}
out.println("Player chooses " + full);

RockPaperScissors game = new RockPaperScissors();
game.setPlayers(response);
game.determineWinner();
out.println(game);
}
}

我的错误是

Exception in thread "main" java.lang.Error: Unresolved compilation problem:    The local variable full may not have been initialized        at labs10.RPSRunner.main(RPSRunner.java:25)

最佳答案

String full;

您声明没有初始值的full。如果用户输入 RPS,您就为其分配一个值。但如果他们输入其他内容怎么办?那么 full 仍然是未初始化的。编译器不喜欢这样。

要么首先为其分配一个值...

String full = null;

...或添加最后的 else 子句来处理所有其他用户输入。

if (response.equals("R")) {
full = "Rock";
} else if (response.equals("P")) {
full = "Paper";
} else if (response.equals("S")) {
full = "Scissors";
} else {
full = null;
}

关于java - 当字符串已经被初始化和分配时拒绝声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36133629/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com