簡體   English   中英

如何將隨機數加到Java(二十一點)的總數中?

[英]How can i add the random number to my total for java(blackjack)?

這是我的代碼:

import java.util.*;
import java.util.Scanner;

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

        Random random = new Random();     
        int ran2 = (random.nextInt(10));
        int ran1 = (random.nextInt(10));
        int total = ran1 + ran2;
        char exit = 'y';

        System.out.println("First cards: " + ran1 + ", " + ran2);
        System.out.println("Total: " + total);

        while(exit != 'n' && total < 21){
            System.out.println("Do you want another card? (y/n): ");
            exit = stdin.next().charAt(0);


            System.out.println("Card: "+ (random.nextInt(10)));
            total = total + (random.nextInt(10));
            System.out.println("Total: "+ total);


        }   

    }       
}

輸入n ,如何使程序退出,而不是再次打印出總數?

看一下這個:

public class Assignment2 {
    public static void main(String args[]){ 
        int next = 0;
        Scanner stdin = new Scanner(System.in);

        Random random = new Random();     
        int ran2 = (random.nextInt(10));
        int ran1 = (random.nextInt(10));
        int total = ran1 + ran2;
        char exit = 'y';

        System.out.println("First cards: " + ran1 + ", " + ran2);
        System.out.println("Total: " + total);

        while(exit != 'n' && total < 21){
            System.out.println("Do you want another card? (y/n): ");
            exit = stdin.next().charAt(0);

            next = random.nextInt(10);
            System.out.println("Card: "+ next);
            total = total + next;
            System.out.println("Total: "+ total);


        }   
        if (exit.equals('n'))
            system.exit(0);

    }
}
  • 現在,通過調用system.exit(0)輸入n后,該程序就存在了。
  • 您只需調用一次nextInt ,所以您將不會創建2個不同的隨機數。 所以,我將第一個呼叫到一個變量next所以,請你不用打電話,你可以用它多次nextInt一次。
  • 如果要讓程序在用戶輸入n之后立即退出,則需要將if語句放在exit = stdin.next().charAt(0);

如果要退出循環,可以中斷循環。 基本上,您必須這樣做(我已寫了評論以突出顯示更改)-

import java.util.*;
import java.util.Scanner;

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

        Random random = new Random();     
        int ran2 = (random.nextInt(10));
        int ran1 = (random.nextInt(10));
        int total = ran1 + ran2;
        char exit = 'y';

        System.out.println("First cards: " + ran1 + ", " + ran2);
        System.out.println("Total: " + total);

        while(exit != 'n' && total < 21){
            System.out.println("Do you want another card? (y/n): ");
            exit = stdin.next().charAt(0);

            //you need to check here if the user entered 'n'. I have used a break opertion
            //to break from the loop and print the total outside the loop. But if you want
            //to exit the program altogether, just replace break with exit(0) :)
            if(total >= 21 or exit == 'y') {
              break;
            } 

            //As Idos correctly pointed out that by calling random.nextInt(10) two
            //times you have a very big chance of creating two different random numbers.
            //So it makes sense to put the first call into a variable nextNumber.
            int nextNumber = random.nextInt(10);
            total = total + (nextNumber);

            //Now we should again check for total. If it is greater than or equal to 21
            //I am again breaking from the loop. Feel free to replace break with exit(0).
            if(total >= 21) {
              break;
            }
            System.out.println("Total: "+ total);    

        }   
        System.out.println("Your total- "+ total);
    }       
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM