java - 字符串初始化

标签 java string initializing

我正在创建一个 TicTacToe 游戏,但我遇到了字符串问题

代码:

import java.util.Scanner;

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

        String player1Letter;
        String player2Letter;

        System.out.print("Player 1 Name: ");
        String player1 = input.next();
        System.out.print('\f');

        System.out.print("Player 2 Name: ");
        String player2 = input.next();
        System.out.print('\f');

        System.out.print(player1 + ", Choose X or O: ");
        String letter = input.next();

        if (letter.equalsIgnoreCase("x")) {
            player1Letter = "X";
        } else {
            player2Letter = "O";
        }

        if (letter.equalsIgnoreCase("o")) {
            player1Letter = "O";
        } else {
            player2Letter = "X";
        }

        System.out.print('\f');
        System.out.println("How To");
        System.out.println("-------");
        System.out.println();
        System.out.println(" 1 | 2 | 3 ");
        System.out.println("-----------");
        System.out.println(" 4 | 5 | 6 ");
        System.out.println("-----------");
        System.out.println(" 7 | 8 | 9 ");
        System.out.println();

        while (true) {
            System.out.print("Type 'begin' To Begin: ");
            String begin = input.next();
            if (begin.equalsIgnoreCase("begin")) {
                break;
            } else if (!begin.equals("begin")) {
                System.out.print('\f');
                System.out.println("Incorrect Syntax");
                System.out.println();
            }
        }
        System.out.println(player1 + "'s Turn " + player1Letter);
        System.out.println("-----------------------------------");
        System.out.println();
        System.out.println("   |   |   ");
        System.out.println("-----------");
        System.out.println("   |   |   ");
        System.out.println("-----------");
        System.out.println("   |   |   ");
    }
}

在它说的底部

System.out.println(player1 + "'s Turn " + player1Letter);

我收到错误提示“变量 player1Letter 可能尚未初始化”。我在 if 语句外创建了字符串,并在 if 语句内初始化了它们。现在我调用它,我不知道这里出了什么问题。谢谢!

最佳答案

像这样更改您的初始化代码:

if (letter.equalsIgnoreCase("x")) {
    player1Letter = "X";
    player2Letter = "O";
} else {
    player1Letter = "O";
    player2Letter = "X";
}

所以你总是会初始化这两个变量

关于java - 字符串初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33511270/

相关文章:

c 字符串数组比较

php - 替换 PHP :FunctionName with the PHP function return

java - 在 Spring 测试类中设置等效属性后?

django - 在 Mac (10.6.8) 上为 Django 初始化 virtualenvwrapper

java - 如何在 RapidMiner 扩展中记录第 3 方输出?

java - Pane 和选定的 CSS 选项

java - 按钮新游戏无法运行 Java

java - 模块化开发

c# - 为什么 string.StartsWith ("\u2D2D") 总是返回 true?

c++ - 用引号和花括号初始化 char 数组