数组中的数字应该分配给变量,但事实并非如此,我也不知道为什么

代码的工作在注释中描述。由于某种原因,变量“ bonusGameWinningNumber”始终为0,我不知道为什么。

我尝试过脑海中的每一次迭代,但似乎完全没问题……我正在使用eclipse。由于没有错误显示,我什至不知道在google / notes中寻找什么。另外,我真的不知道为什么整个代码都不想放在应该放置的位置(导入和公共类主程序)

import java.util.Random;

import java.lang.Math; 

import java.util.Scanner;

public class Main

{

public static void main(String[] args)

  {    

    Random rand = new Random(); //opening Random function;
    int randomNumber; //variable to store random numbers before assigning to the array
    int bonusGameNumber[]=new int [5]; //array for storing bonus game numbers
    int bonusGameWinningNumber=0;

    System.out.println("Possible winnings: €10,€20,€50,€200 and €1000. Good luck!");
    for (int m=1; m<=4; m++) // loop generating numbers for bonus game
    {
            randomNumber = rand.nextInt(999)+1;
        if (randomNumber <=600)
        {
            System.out.println("€10");
            bonusGameNumber[m] = 1;
        } else if (randomNumber >600 && randomNumber <800)
        {
            System.out.println("€20");
            bonusGameNumber[m] = 2;
        }else if (randomNumber >800 && randomNumber <900)
        {
            System.out.println("€50");
            bonusGameNumber[m] = 3;
        }else if (randomNumber >900 && randomNumber <975)
        {
            System.out.println("€200");
            bonusGameNumber[m] = 4;
        }else if (randomNumber >975 && randomNumber <=1000)
        {
            System.out.println("€1000");
            bonusGameNumber[m] = randomNumber;
        } 

    }
    for (int z=1; z<=4; z++) // loop to make sure numbers have been assigned propely.
    {
        System.out.println(bonusGameNumber[z]);
    }
    for (int n=1;n<=4;n++) //loop checking if any number got doubled,if so,assigning higher value to variable "bonusGameWinningNumber" (which has default value of 0)
    {
         for (int o=1; o<=4; o++)
         {
             if (n != o) 
             {
                 if (bonusGameNumber[n] == bonusGameNumber[o])  
                     {
                     if(bonusGameWinningNumber > bonusGameNumber[o]) 
                     {
                         bonusGameWinningNumber = bonusGameNumber[0];
                     System.out.println("test");
                     }
                     }                   
             }
        }
    }
    System.out.println(bonusGameWinningNumber); //testing if any number got assigned to the variable,it never does...

        if (bonusGameWinningNumber == 1)
        {
            System.out.println("Congratulations,you won €10 in the bonus game");
        }else if (bonusGameWinningNumber == 2)
        {
            System.out.println("Congratulations,you won €20 in the bonus game");
        }else if (bonusGameWinningNumber == 3)
        {
            System.out.println("Congratulations,you won €50 in the bonus game");
        }else if (bonusGameWinningNumber == 4)
        {
            System.out.println("Congratulations,you won €200 in the bonus game");
        }else if (bonusGameWinningNumber == 5)
        {
            System.out.println("Congratulations,you won €1000 in the bonus game");
        } else System.out.println("Sorry,you didn't win anything in the bonus game. Better luck next time!");}}
LIUYUSHAN613 回答:数组中的数字应该分配给变量,但事实并非如此,我也不知道为什么

此答案基于问题评论。

import java.util.Random;

import java.lang.Math; 

import java.util.Scanner;

public class Main

{

    public static void main(String[] args)

    {    

        Random rand = new Random(); //opening Random function;
        int randomNumber; //variable to store random numbers before assigning to the array
        int bonusGameNumber[]=new int [5]; //array for storing bonus game numbers
        int bonusGameWinningNumber=0;

        System.out.println("Possible winnings: €10,€20,€50,€200 and €1000. Good luck!");
        for (int m=1; m<=4; m++) // loop generating numbers for bonus game
        {
            randomNumber = rand.nextInt(999)+1;
            if (randomNumber <=600)
            {
                System.out.println("€10");
                bonusGameNumber[m] = 1;
            } else if (randomNumber >600 && randomNumber <800)
            {
                System.out.println("€20");
                bonusGameNumber[m] = 2;
            }else if (randomNumber >800 && randomNumber <900)
            {
                System.out.println("€50");
                bonusGameNumber[m] = 3;
            }else if (randomNumber >900 && randomNumber <975)
            {
                System.out.println("€200");
                bonusGameNumber[m] = 4;
            }else if (randomNumber >975 && randomNumber <=1000)
            {
                System.out.println("€1000");
                bonusGameNumber[m] = randomNumber;
            } 

        }
        for (int z=1; z<=4; z++) // loop to make sure numbers have been assigned propely.
        {
            System.out.println(bonusGameNumber[z]);
        }
        for (int n=1;n<=4;n++) //loop checking if any number got doubled,if so,assigning higher value to variable "bonusGameWinningNumber" (which has default value of 0)
        {
            for (int o=1; o<=4; o++)
            {
                if (n != o) 
                {
                    if (bonusGameNumber[n] == bonusGameNumber[o])  
                    {
                        if(bonusGameWinningNumber < bonusGameNumber[o]) 
                        {
                            bonusGameWinningNumber = bonusGameNumber[0];
                            System.out.println("test");
                        }
                    }                   
                }
            }
        }
        System.out.println(bonusGameWinningNumber); //testing if any number got assigned to the variable,it never does...

        switch(bonusGameWinningNumber) {
        case 1:
            System.out.println("Congratulations,you won €10 in the bonus game");
            break;
        case 2:
            System.out.println("Congratulations,you won €20 in the bonus game");
            break;
        case 3:
            System.out.println("Congratulations,you won €50 in the bonus game");
            break;
        case 4:
            System.out.println("Congratulations,you won €200 in the bonus game");
            break;
        case 5:
            System.out.println("Congratulations,you won €1000 in the bonus game");
            break;
        default:
            System.out.println("Sorry,you didn't win anything in the bonus game. Better luck next time!");
        }
    }
}
本文链接:https://www.f2er.com/3168559.html

大家都在问