- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试编写一个简单的硬币翻转程序,想知道是否可以获得一些帮助。我对 Java 相当陌生,只是想问用户他们想掷硬币多少次。这是我的代码:
package cointossing;
import java.util.Random;
import java.util.Scanner;
import static java.lang.System.in;
import static java.lang.System.out;
/**
* Coin tossing class to simulate the flip of a coin
* with two sides; Heads and Tails.
*
* @author Alex Chapman ID:
*
*/
public class CoinTossing
{
public static String sideUp;
public static int number;
public void run()
{
try( Scanner input = new Scanner(in) )
{
out.print("Enter how many times you would like to flip the coin");
out.print("if you enter 0 the program quits");
int number = input.nextInt();
}
}
private static void coin()
{
Random rand = new Random();
int sideup = rand.nextInt(2);
if (sideup == 0)
{
sideUp = "heads";
}
else
{
sideUp = "tails";
}
}
public static String getsideup()
{
out.println(sideUp);
return sideUp;
}
public static void main(String[] args)
{
int hcount = 0;
int tcount = 0;
for (int i = 1; i <= number; i++)
{
coin();
if (getsideup().equals("heads"))
{
hcount++;
}
else
{
tcount++;
}
}
out.println("total heads = " + hcount + " total tails = " + tcount);
}
}
但是当我运行该程序时,它会跳过询问用户任何内容,只显示 0,因为没有翻转硬币的次数...我感觉我走在正确的轨道上,但我卡住了...任何帮助将不胜感激..
编辑:
因此,为了学习,我决定更改我的程序,将硬币更改为枚举,并让程序返回该枚举值..我还将用户输入更改为菜单样式,但这通过以下操作得到了帮助在我不久前购买的 Barnes and Nobles 书中...我想我已经走到了一个奇怪的十字路口...我想基本上将这两个程序融合在一起,以便所有新工作都返回枚举值这样的内容仍然存在,但删除了“菜单”方面,并将其替换为用户输入他们想要从之前的程序中进行多少次翻转的功能。这是我编写的新程序:
import java.util.*;
public class CoinTossing
{
private enum Coin { HEADS, TAILS };
private static final Random randomNumbers = new Random();
private static final int HEAD = 1;
private static final int TAIL = 2;
public static void main(String[] args)
{
Scanner input = new Scanner( System.in );
int choice;
int toss = 0;
int tosses = 0;
int frontflip = 0;
int backflip = 0;
Coin gameStatus;
System.out.println("Welcome to the Coin Toss Program.\n");
System.out.println("Choose from the menu what you want to do.");
System.out.print("1. Toss the coin\n2. Quit program\n");
choice = input.nextInt();
while ( choice != 0 )
{
if ( choice == 1 )
{
int CoinTossed = Flip();
switch ( CoinTossed )
{
//added tosses to switch statement to make the counter work perfect.
case HEAD:
gameStatus = Coin.HEADS;
tosses++; // add amount of tosses
break;
default: // changed case TAIL to default. Easy and works.
gameStatus = Coin.TAILS;
tosses++; // add amount of tosses
break;
}
if ( gameStatus == Coin.HEADS )
{
frontflip++; //Add amount of heads
}
else // gameStatus == TAILS
backflip++; //Add amount of tails
}
// A try to make an real exit out of a program
if ( choice == 2 )
{
EndProgram( frontflip, backflip, tosses );
}
System.out.println("\nChoose from the menu what you want to do.");
System.out.print("1. Toss the coin\n2. Quit program\n");
choice = input.nextInt();
}
}
//Toss the coin to determine 1 or 2.
public static int Flip()
{
int toss;
toss = 1 + randomNumbers.nextInt( 2 );
if ( toss == 1 )
{
System.out.println("You toss the coin and it lands on head!");
}
else
{
System.out.println("You toss the coin and it lands on tail!");
}
return toss;
}
public static void EndProgram( int frontflip, int backflip, int tosses )
{
System.out.printf("You have tossed %d times.\n", tosses);
System.out.printf("Of all those tosses, %d landed on heads, and %d on tails.\n", frontflip, backflip);
System.exit(0);
}
}
我正在考虑创建一个新变量并让用户设置抛掷次数。然后像这样复合 while 循环检查
while(choice != 0 && numTosses !=0)
然后减少计数,我必须检查该计数,一旦达到 0 就打印出有多少个正面和多少个反面的结果,然后提示用户是否想再次玩游戏..老实说我什至不知道为什么我要尝试这样做,如果不是为了知识方面,所以如果你不想帮助布罗斯基,我理解。
最佳答案
您没有在 main 中调用 run() 。
您需要添加run()
在您的for (int i = 1; i <= number; i++)
之前打电话。
您还需要再次检查您的变量,看起来您正在使用 sideUp
作为 int 和作为字符串。尝试添加this.sideUp
当您设置值 "heads"
时,在 coin() 调用中和"tails"
,或重命名您的int sideUp
变量以避免混淆。
关于Java 硬币翻转程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39520725/
我目前正在做一个项目,试图开发一种用于 P2P 能源交易的货币和模型,其中每产生一千瓦时的可再生能源就会向该生产商类型转换一枚硬币。我的问题是关于销毁智能合约中的代币。 所有与我的项目类似的当前实现都
在没有Maps帮助的情况下通过Memoization解决问题,由于读取文件的方法,我得到了TLE,根据我的说法,这不应该是这种情况。可能的原因是什么? 这是给出 AC - http://ideone.
考虑下面这段伪代码,其中d是面额值数组,k是面额数,n是要进行更改的金额。 Change(d; k; n) 1 C[0] 我真的不明白这部分,你为什么要用它,谁能给我解释一下! 最佳答案 为了回答
我正在尝试在我的网站上实现 Coin Slider (http://workshop.rs/2010/04/coin-slider-image-slider-with-unique-effects/)
我有使用硬币 slider 的画廊 var $jq = jQuery.noConflict(); $jq(window).load(function() { var imhei
我使用了从该站点提取的硬币 slider http://workshop.rs/projects/coin-slider/ .它现在自动滚动并仅在悬停时显示上一个和下一个。我需要禁用自动滚动并正常显示
我的问题是一道CodeFu练习题(2012 round 2 problem 3)。它基本上归结为将整数数组分成两个(几乎)相等的两半并返回两者之间可能的最小差异。我在下面包含了问题描述。如评论中所述,
我们的老师要求我们制作一 jar 硬币,用来计算我们有多少便士、一毛钱等,然后给出总金额。 这是他希望我们使用的模板 https://online.pcc.edu/content/enforced/7
我正在尝试使用币安币 future 的 api 下载 BTC/USD 永续 future 的历史价格数据,具体来说,我想使用 this endpoint .但是,我找不到必须为 BTC/USD 指定的
我上周刚开始学习计算机科学,我们得到了一个名为“硬币”的工作表,其中我必须找出一组硬币中有多少个 25 美分、10 美分、5 美分和 10 便士。我遇到了很多麻烦,并收到了该错误。这是我的代码 pac
我正在构建一些使用消耗性硬币的测验。我使用 NSUserDefault 来保存设备上的硬币及其工作。我还在 qiuz 中使用 CloudKit 处理数据。 不麻烦的是,如果用户切换设备如何恢复硬币?有
我是一名优秀的程序员,十分优秀!