java - 为什么这个java程序中变量不存储值?

标签 java string variable-assignment

我收到一个错误,指出该变量可能未初始化。我使用普通的字符串数据类型和 if..else 语句进行决策。这是一个向用户发放 5 张随机卡的程序。我认为我得到的错误出现在 if else 语句的第一个语句中变量赋值方法是正确的,甚至在其他程序中尝试过,并且它在这些程序中有效。有人能找到其中的错误吗?

import java.util.Random;
public class RandomCard 
{
public static void main(String[] args)
{
    int cardNumber;
    int cardSign;
    String sign;
    Random card = new Random();
    for(int counter = 0; counter < 5; counter++)
    {

        cardSign = card.nextInt(4);

        if(cardSign == 0)
        {
            sign = "Spades";
        }

        else if(cardSign == 1)
        {
            sign = "Hearts";
        }

        else if(cardSign == 2)
        {
            sign = "Clubs";
        }

        else if(cardSign == 3)
        {
            sign = "Diamond";
        }



        cardNumber = 1 + card.nextInt(13);
        if(cardNumber>1 && cardNumber<11)
        {
            System.out.print(sign + " ");
            System.out.println(cardNumber);
        }

        else if(cardNumber == 11)
        {
            System.out.print(sign + " ");
            System.out.println("Jack");
        }

        else if(cardNumber == 11)
        {
            System.out.print(sign + " ");
            System.out.println("Jack");
        }

        else if(cardNumber == 12)
        {
            System.out.print(sign + " ");
            System.out.println("Queen");
        }

        else if(cardNumber == 13)
        {
            System.out.print(sign + " ");
            System.out.println("King");
        }

        else if(cardNumber == 1)
        {
            System.out.print(sign + " ");
            System.out.println("ACE");
        }

    }

}

}

最佳答案

初始化String sign=null或在else中的if语句末尾提供默认值。

if(){
} else if() {
} else {
// default value for sign here
}

关于java - 为什么这个java程序中变量不存储值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11006680/

相关文章:

java - Liferay + Struts2 没有为命名空间/testPortlet1 和操作名称 startTestPortlet1 映射的操作,为什么?

java - 如何创建 Jar 库文件来自动创建 Spring Boot 应用程序的 REST API 端点?

string - Go 中别名类型之间的转换会创建副本吗?

javascript - Jquery 不返回基本字符串

MySql查询将小写更改为大写

java - 解析已在 Spring boot 测试中使用的端口 DEFINED PORT

java - 为什么 LocalDate、LocalTime 和 Stream 对象使用工厂方法 of() 而不是构造函数?

algorithm - 通路/道路铺设问题

c++ - 奇变量赋值

java - Java 中令人费解的数组赋值行为