我对Java编程非常陌生,我正在尝试制作一个扑克手评估器。我正在问一个卡的花色和价值,使用for循环。出于某种原因,它在for循环的第一次迭代中起作用,但在此之后只会询问我一个值。这是我的代码:为什么我的程序只让我在for循环的第一次迭代之后输入一个值?
import java.util.Scanner;
public class PokerRun {
public static void main(String[] args) {
int [] suit = new int[5];
int [] value = new int[20];
Card card1 = new Card();
Scanner in = new Scanner(System.in);
int counter = 1;
System.out.println("Welcome to the Poker Hand Evaluator!");
for(int i = 1; i<6; i++)
{
System.out.println("What is the suit of card " + i + "?\nPlease type the suit in all lowercase letters: ");
card1.suit = in.nextLine();
System.out.println("What is the value of card " + i + "? (J = 11, Q = 12 K = 13, A = 14");
card1.value = in.nextInt();
//checks if face card, if true, then changes card.facecard
if(card1.value == 11)
card1.facecard = "Jack";
else if(card1.value == 12)
card1.facecard = "Queen";
else if(card1.value == 13)
card1.facecard = "King";
else if(card1.value == 12)
card1.facecard = "Ace";
if(card1.value<11)
System.out.println("You entered a " + card1.value + " of " + card1.suit + ".");
else
System.out.println("You entered a " + card1.facecard + " of " + card1.suit + ".");
}
}
}
显示命令行输入和输出。 – eebbesen
请不要依赖用户给予预期的输入。让你的程序准备好用于奇怪的输入。就像用户可以通过''abc'',你正在读'int'。首先预先检查输入。 –