gpt4 book ai didi

java - 为什么我的程序只允许我在 for 循环第一次迭代后输入一个值?

转载 作者:行者123 更新时间:2023-12-01 23:41:32 28 4
gpt4 key购买 nike

我对 Java 编程非常陌生,我正在尝试制作一个扑克牌评估器。我使用 for 循环询问一张牌的花色和值(value)。由于某种原因,它在 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 + ".");
}

}

}

最佳答案

Rohit Jain,是的,这正是这个问题。

我的解决方案建议是交换线路

card1.value = in.nextInt();

与:

card1.value= Integer.parseInt(in.nextLine());

这应该适合你。

再解释一下,扫描仪是为文件等的字符串解析而构建的。它对于命令行输入来说不太好。我会使用 BufferedReader:

BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
reader.readLine();

关于java - 为什么我的程序只允许我在 for 循环第一次迭代后输入一个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17860658/

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