【发布时间】:2016-10-22 12:30:22
【问题描述】:
我的代码有什么问题?我正在尝试请求提示用户输入一个数字,如果它不在 1 和 6 之间,或者它应该说无效并提示另一个尝试。用户可能只有 3 次尝试。
import java.util.Scanner;
public class Game {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int[] numbers = new int[6];
System.out.println("Enter a number on a die from 1-6:");
String dieinput = input.next();
int invalidcount = 0;
System.out.println("Your number is: " + dieinput);
do{
try
{
// the String to int conversion
int dienum = Integer.parseInt(dieinput.trim());
int dienumOE = 0;
int count=0;
//test number input
if ((dienum >= 1) && (dienum<= 6))
System.out.println("number is " + dienum + oddoreven(dienum));
else
System.out.println("Invalid number, please enter a number 1-6");
count++;
System.out.println("Count" + count);
}
catch (NumberFormatException nfe){
System.out.println("Invalid number, please enter a number 1-6");
System.out.println("Count" + count);
}
while (count <= 3 && count >=0);
}
}
// Check if odd or even
public static String oddoreven(int num) {
String result;
if (num % 2 == 0)
result = "even";
else
result = "odd";
return result;
}
}
【问题讨论】:
-
无限循环。您在每个循环开始时将计数设置为 0。请参阅下面的答案,但也不要在循环内将此变量设置为零。
-
请发布一个完整的示例 - 您的源代码甚至无法编译。
-
我更改了 int 计数器,但 do-while 仍在正常工作。有什么建议吗?