gpt4 book ai didi

java - For 循环嵌套在 do... while 不起作用

转载 作者:行者123 更新时间:2023-12-01 18:36:26 25 4
gpt4 key购买 nike

我在 Coin.java 类中设置了一个 for 循环,由正在运行的程序 CoinTossing.java 调用...由于某种原因,for 循环被忽略,我不确定为什么。任何提示将非常感谢!谢谢。

Coin.java(方法在哪里!)

import static java.lang.System.exit;
import static java.lang.System.in;
import static java.lang.System.out;
import java.util.Random;
import java.util.Scanner;

/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/

/**
*
* @author Kiora Lizet
*/
public class Coin

{

//Enumeration with representation of coin state.
private enum Status {HEADS, TAILS};

//Constants that represent flip outcome
private static final int HEADSCOUNT = 0;
private static final int TAILSCOUNT = 1;

//Random number function.
private static final Random randomNumbers = new Random();

//Method to flip a coin and return the output.

Status coinState; //Contains the orientation of the coin, heads or tails.

int numberOfHeads = 0; //Couinter for number of heads.
int numberOfTails = 0; //Counter for number of tails.
public int flip()
{
int outcome = randomNumbers.nextInt(2);
return outcome;
}

//Method to ask the user for their decisions on coin flips.
public int decision()
{

int Flips = 1;
Scanner input = new Scanner(in);
int flipDecision;
do
{
out.print("Enter 1 to flip the coin. Enter 2 to select the amount "
+ "of flips. (0 or below to stop): ");
flipDecision = input.nextInt(); //Grabs decision

if(flipDecision <= 0) //Exit the program.
exit(0);

if(flipDecision >= 3) //Reruns loop.
{
out.print("Enter a correct decision.\n");
}
}while (flipDecision >= 3);

if(flipDecision == 2)
{
out.print("Please insert the number of flips desired: ");
Flips = input.nextInt();
}
return Flips;
}

//Method to store coins flipped.
public void coinsFlipped(int Flips)
{
for(int i = 0; i == Flips; ++i)
{
int outcome = flip();

switch (outcome)
{
case HEADSCOUNT: //Get a counter for one heads value.
out.print("Heads!");
coinState = Status.HEADS;
break;
case TAILSCOUNT: //Get a counter for one tails value.
out.print("Tails!");
coinState = Status.TAILS;
break;
}

if(coinState == Status.HEADS)
{
++numberOfHeads;
out.printf("/nThere are currently %d repetitions of Heads.",
+ numberOfHeads);
}
if(coinState == Status.TAILS)
{
++numberOfTails;
out.printf("\nThere are currently %d repetitions of Tails.",
+ numberOfTails);
}
}
}

}

CoinTossing.java(方法汇集在一起​​!)

import static java.lang.System.exit;
import static java.lang.System.in;
import static java.lang.System.out;
import java.util.Scanner;

/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/

/**
*
* @author Kiora Lizet
*/
public class CoinTossing
{

//Enumeration with representation of coin state.
private enum Status {HEADS, TAILS};

//Constants that represent flip outcome
private static final int HEADSCOUNT = 0;
private static final int TAILSCOUNT = 1;

public static void main (String[] args)
{

Scanner input = new Scanner(in);
Coin Token = new Coin(); //For functions, object declaration.

int continuation; //Variable to decide for more flips.


do
{
int Flips = Token.decision();
Token.coinsFlipped(Flips);
//Variable declared for amount of flips.
out.printf("Flips: %d", Flips);

out.print("\nWould you like to flip more coins? \nInsert 1 to do so."
+ " Enter any other number to exit program.\n");
continuation = input.nextInt();
}while(continuation == 1);
}
}

最佳答案

您的 for 循环终止条件有问题。这:

for(int i = 0; i == Flips; ++i)
仅当 Flips 的值不是 0 时,

才会在第一次迭代时终止。应替换为:

for(int i = 0; i <= Flips; ++i)

关于java - For 循环嵌套在 do... while 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21808630/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com