Добавление нескольких отпечатков поможет вам отладить все проблемы.
Первая проблема заключается в том, что nextInt()
не захватывает разрыв строки, используемый для ввода количества игр, поэтому вы можете добавить scanner.nextLine();
после этого, чтобы предотвратить немедленное завершение игры.
Вторая проблема - это ваше условие для l oop. Удалите от -1
до l oop по всем элементам в массиве.
Третья проблема состоит в том, что при вычислении для получения результата вы делите целое число на число, которое всегда больше или равно до этого целого числа, так что десятичные дроби усекаются, или результат равен 1. Вы можете привести целое число к удвоению в операции или объявить heads
как двойное, или, альтернативно, вы можете умножить на 100 перед делением, если вас не волнует десятичные дроби процента результата.
import java.util.Scanner;
public class Main {
public static void main (String []args) {
Scanner scanner = new Scanner(System.in);
System.out.print("How many games? ");
int games = scanner.nextInt();
System.out.println("Games: "+ games);
scanner.nextLine();
int count = 0;
int heads = 0;
while (count<games){
System.out.print("Enter your flips for game "+ count+": ");
String input = scanner.nextLine();
String [] inputArray = input.split("\\s+");
for (int i = 0; i <inputArray.length; i++){
System.out.println("Input["+ i +"]: "+ inputArray[i]);
if (inputArray[i].equals("H")){
heads++;
System.out.println("Heads count: "+ heads);
}
}//exit for loop
double score = ((double)heads/(inputArray.length)*100);
if (score >= 50.0)
System.out.println("Game "+ count + ": "+ heads + " heads ("+ score+ "%); You win!");
else
System.out.println("Game "+ count + ": "+ heads + " heads ("+ score+ "%); You lose!");
count++;
}
}
}