java中if语句的问题

题目是这样的:编写一个剪刀-石头-布游戏程序。用0、1、2分别表示剪刀、石头、布,随机从三个数字中选择两个数,利用游戏规则,比较它们之间的大小,并显示优胜信息。这个执行是... 题目是这样的:编写一个剪刀-石头-布游戏程序。用0、1、2分别表示剪刀、石头、布,随机从三个数字中选择两个数,利用游戏规则,比较它们之间的大小,并显示优胜信息。
这个执行是对的:public class Random{
public static void main(String[]args){
int[]anArray={0,1,2};
System.out.println("0代表剪刀,1代表石头,2代表布");
int x =(int)(anArray.length*Math.random());
System.out.println("甲出了"+ anArray[x]);

int y =(int)(anArray.length*Math.random());
System.out.println("乙出了"+ anArray[y]);

int max;
int min;
if(x>y){
max=x;
min=y;
if(max==1){
System.out.println("石头胜");
}else{
if(min==0){
System.out.println("剪刀胜");
}else{
System.out.println("布胜");
}
}
}else if(x<y){
max=y;
min=x;
if(max==1){
System.out.println("石头胜");
}else{
if(min==0){
System.out.println("剪刀胜");
}else{
System.out.println("布胜");
}
}
}else{
System.out.println("平局");
}

}
}

最开始写的这个执行起来不对:
int max;
int min;

if(x>y){
max=x;
min=y;
}else if(x<y){
max=y;
min=x;
}else{
System.out.println("平局");
}

if(max==1){
System.out.println("石头胜");
}else{
if(min==0){
System.out.println("剪刀胜");
}else{
System.out.println("布胜");
}
}

}
}
会显示可能未初始化变量max和min。而且只要是在上面的大if语句之后涉及到max和min都说可能未初始化变量。
想问一下为什么会不对?为什么在第一个if语句之后就没法再用max和min了??
展开
 我来答
哦_廿一
2017-03-24 · TA获得超过431个赞
知道小有建树答主
回答量:273
采纳率:91%
帮助的人:233万
展开全部
        int max;
        int min;
        //注意这里,如果x=y时就会跳过下面这部分if语句中所有的对max和min的赋值。
        /*if(x>y){
            max=x;
            min=y;
        }else if(x<y){
            max=y;
            min=x;
        }else{
            System.out.println("平局");
        }*/
        //这样上面max和min只有定义而没有声明。就在下面直接使用了。
        if(max==1){
            System.out.println("石头胜");
        }else{
            if(min==0){
                System.out.println("剪刀胜");
            }else{
                System.out.println("布胜");
            }
        }
追问
谢谢!还有三个疑惑
第一,是不是说,
int a;
int b;
而赋值a和b相等的时候就会出现问题?
那么这时候程序里实质上发生的是什么呢?是一个会覆盖另一个还是怎样?

第二,如果我改成把声明和赋值在if语句里面合为一步可不可以呢?在if语句里面写int max=x可以吗……(第三,这样的话else语句里面是不是不用再声明,只要赋值就可以了?)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式