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

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

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退出)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值