Java Else if 老虎机不检查所有数字是否相同

标签 java if-statement

我正在创建一个简单的老虎机程序,问题是 else if 语句没有检查所有三个数字是否相同。我不太确定问题是什么,因为每当三个数字相同时,它只会打印“两个数字匹配”,而不是说“完美匹配”。

import java.util.Scanner;
import java.util.Random;
public class SlotMachine {

public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);
    Random random = new Random();
    int slot1, slot2, slot3;

    String choice;

    System.out.println("Slot Machine Started!");

    do{
        slot1 = random.nextInt(2);
        slot2 = random.nextInt(2);
        slot3 = random.nextInt(2);
        System.out.println(slot1+"||"+slot2+"||"+slot3);

        //Two Matches 
        if(slot1 == slot2 || slot1==slot3||slot2==slot3) {
            System.out.println("You got two matches!");
        //All Matches
        }else if (slot1==slot2 && slot2==slot3){
            System.out.println("Perfect Match!! You win");
        }else {
            System.out.println("No matches, you suck!");
        }

        System.out.println("Would you like to spin again?");
        choice = scan.nextLine();
    }while(!choice.equalsIgnoreCase("No"));

            System.out.println("Slot Machine Stopped!");
    scan.close();
}

 }

最佳答案

问题在于您组织条件的方式:每次出现三个数字匹配时,它也是一个两个数字匹配,因此您应该在前面进行更严格的检查限制较少的一个:

//All Matches
if(slot1==slot2 && slot2==slot3) {
    System.out.println("Perfect Match!! You win");
}else if (slot1 == slot2 || slot1==slot3||slot2==slot3){
    System.out.println("You got two matches!");
}else {
    System.out.println("No matches, you suck!");
}

关于Java Else if 老虎机不检查所有数字是否相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28034545/

相关文章:

java - 我无法使用java类获取资源。错误: Attempt to invoke virtual method

java - 如何在 Android 中为 TabActivity 更改设置动画?

java - 如何删除RelativeLayout中动态创建的 View

java - 设置 Apache Web 服务器以进行本地测试

Java:尝试获取 HTML 元素的值

java - @Controller 无法在 Spring boot 多模块 Maven 项目中的(模块 Web)子包中工作

Java - 剪刀石头布 - 如果错误则额外循环一次并计算获胜次数

arrays - 如何根据 Google 表格上的另一个单元格值更改单元格

C简写代码方式

jquery - 如何在 JSP 页面上使用 If/else 语句隐藏 Div?