Цикл не ведет себя так, как я ожидаю
Код, который я написал, компилируется, но не дает ожидаемого результата. Он заканчивается до того, как я ввел все свои входные данные, и не дает правильного результата. Любая идея, где ошибка (ы)?
Вот основная программа:
public static void main(String[]args)
{
Scanner keyboard = new Scanner(System.in);
String coinFlip;
int tossNumber, numberOfHeads, numberOfTails;
float percHeads, percTails;
tossNumber = 1;
numberOfHeads = 0;
numberOfTails = 0;
while(tossNumber <= 8)
{
System.out.println("Please toss your coin and enter the side showing.");
System.out.println("h = heads, t = tails");
coinFlip = keyboard.next();
if(coinFlip.equals("h") || coinFlip.equals("t"))
{
if(coinFlip.equals("h"))
{
System.out.println("Thank you! Please toss your coin again.");
tossNumber = tossNumber + 1;
numberOfHeads = numberOfHeads + 1;
}
else
System.out.println("Thank you! Please toss your coin again");
tossNumber = tossNumber + 1;
numberOfTails = numberOfTails + 1;
}
else
System.out.println("Please enter a \"h\" or \"t\".");
}
1 ответ
Все, что я сделал, это добавил {}
на ваш else
и я получил это отлично 8 раз, надеюсь, вот и все.
import java.util.Scanner;
public class MC_GAMAD {
public static void main(String[] args) {
Scanner keyboard = new Scanner(System.in);
String coinFlip;
int tossNumber, numberOfHeads, numberOfTails;
float percHeads, percTails;
tossNumber = 1;
numberOfHeads = 0;
numberOfTails = 0;
while (tossNumber <= 8) {
System.out
.println("Please toss your coin and enter the side showing.");
System.out.println("h = heads, t = tails");
coinFlip = keyboard.next();
if (coinFlip.equals("h") || coinFlip.equals("t")) {
if (coinFlip.equals("h")) {
System.out
.println("Thank you! Please toss your coin again.");
tossNumber = tossNumber + 1;
numberOfHeads = numberOfHeads + 1;
} else {
System.out
.println("Thank you! Please toss your coin again");
tossNumber = tossNumber + 1;
numberOfTails = numberOfTails + 1;
}
} else {
System.out.println("Please enter a \"h\" or \"t\".");
}
}
}
}