学以致用——Java源码——抛硬币(Coin Tossing)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hpdlzu80100/article/details/85228182

十年一晃而过,十年前写的代码,依然可以帮助我前进!

package exercises.ch6Methods;


import java.util.*;

//JHTP Exercise 6.29 (Coin Tossing)
//by pandenghuang@163.com
/**
 * 
 *6.29 (Coin Tossing) Write an application that simulates coin tossing. 
 *Let the program toss a coin each time the user chooses the “Toss Coin” menu option. 
 *Count the number of times each side of the coin appears. Display the results. 
 *The program should call a separate method flip that takes no arguments and returns a value from a Coin enum (HEADS and TAILS).
 *[Note: If the program realistically simulates coin tossing, each side of the coin should appear approximately half the time.]
 *
 */

public class CoinTossing {


	
	//此算法基于本人2008年的抛硬币方法,https://blog.csdn.net/hpdlzu80100/article/details/2290653
		
	public static boolean flip()
		 {
		     return Math.random()<0.5;
		 }


	public static void main(String args[]) {
		int input;
		int heads =0;
		int tails =0;
		int counts =0;
		
		String tossingResult;
		
	    Scanner scan=new Scanner(System.in);
	    
	    do {
	    System.out.printf("抛硬币请输入1(输入-1退出):");
	    input = scan.nextInt();
		if(input == -1)
		{System.out.print("已退出程序。");
		    break;
	    }
		
		if (flip()) 
			{tossingResult = "正面";
			 counts++;
			 heads++;
		}
			else 
			{
			tossingResult = "反面";
			counts++;
			tails++;
			}
	    System.out.printf("本次抛硬币的结果是%s,截至目前为止,共抛出%d次,正面共计%d次,反面共计%d次", tossingResult, counts, heads, tails);
	    
	    System.out.println();
	    } while (input != -1);
	    
	    System.out.println("已退出程序。");
	    scan.close();
	}
	}

运行结果:

抛硬币请输入1(输入-1退出):1

本次抛硬币的结果是反面,截至目前为止,共抛出1次,正面共计0次,反面共计1次

抛硬币请输入1(输入-1退出):1

本次抛硬币的结果是正面,截至目前为止,共抛出2次,正面共计1次,反面共计1次

抛硬币请输入1(输入-1退出):1

本次抛硬币的结果是反面,截至目前为止,共抛出3次,正面共计1次,反面共计2次

抛硬币请输入1(输入-1退出):1

本次抛硬币的结果是正面,截至目前为止,共抛出4次,正面共计2次,反面共计2次

抛硬币请输入1(输入-1退出):1

本次抛硬币的结果是反面,截至目前为止,共抛出5次,正面共计2次,反面共计3次

抛硬币请输入1(输入-1退出):1

本次抛硬币的结果是正面,截至目前为止,共抛出6次,正面共计3次,反面共计3次

抛硬币请输入1(输入-1退出):1

本次抛硬币的结果是反面,截至目前为止,共抛出7次,正面共计3次,反面共计4次

抛硬币请输入1(输入-1退出):1

本次抛硬币的结果是正面,截至目前为止,共抛出8次,正面共计4次,反面共计4次

抛硬币请输入1(输入-1退出):1

本次抛硬币的结果是正面,截至目前为止,共抛出9次,正面共计5次,反面共计4次

抛硬币请输入1(输入-1退出):1

本次抛硬币的结果是反面,截至目前为止,共抛出10次,正面共计5次,反面共计5次

抛硬币请输入1(输入-1退出):1

本次抛硬币的结果是反面,截至目前为止,共抛出11次,正面共计5次,反面共计6次

抛硬币请输入1(输入-1退出):1

本次抛硬币的结果是正面,截至目前为止,共抛出12次,正面共计6次,反面共计6次

抛硬币请输入1(输入-1退出):1

本次抛硬币的结果是反面,截至目前为止,共抛出13次,正面共计6次,反面共计7次

抛硬币请输入1(输入-1退出):1

本次抛硬币的结果是反面,截至目前为止,共抛出14次,正面共计6次,反面共计8次

抛硬币请输入1(输入-1退出):1

本次抛硬币的结果是正面,截至目前为止,共抛出15次,正面共计7次,反面共计8次

抛硬币请输入1(输入-1退出):


更多精彩内容