import java.util.*;
class token {
public static void main(String args[]){
Scanner input = new Scanner(System.in);
Random number = new Random();
System.out.println("Do you want to play again(y/n)? ");
String in = input.nextLine();
do{
int num1,num2,sum;
num1 = 1+number.nextInt(6);
num2 = 1+number.nextInt(6);
sum = num1 + num2;
System.out.print("Dice 1: "+num1);
System.out.print("\nDice 2: "+num2);
System.out.print("\nSum: "+sum);
if(sum%2==1){
System.out.println("\nYou have lost 1 token.");
}else if(sum>10){
System.out.println("\nYou have won 2 tokens.");
}else if(sum>11){
System.out.println("\nYou have won 2 tokens.");
}else if(sum>12){
System.out.println("\nYou have won 2 tokens.");
}else{
System.out.println("\nYou have won 1 token.");
}
System.out.println("Do you want to play again(y/n)? ");
String in1 = input.nextLine();
}while(in == "y");
}
}
所以我尝试使用do while循环但不幸的是,它根本不循环。 样本输出: 你想再玩一次(是/否)? 的ý 骰子1:3 骰子2:4 总和:7 你丢失了1个令牌。 你想再玩一次(是/否)? 的ý
我希望我的程序不断循环,除非用户输入n。
答案 0 :(得分:2)
将in == "y"
替换为in.equals("y")
和
带有String in1 = input.nextLine();
的 in = input.nextLine();
因为你没有更新in
的值,所以如果第一次输入为“y”,它将永远循环,否则将只运行一次。
答案 1 :(得分:0)
你应该在while循环中重复输入,然后有一个终止条件:
String in = input.nextLine();
do {
/* conditional logic */
in = input.nextLine();
} while (in.equals("y"));
你拥有它的方式是每次在循环中将它设置为一个新的字符串,这将导致它不会在下一个序列中使用。
答案 2 :(得分:0)
而不是使用
while(in == "y");
你应该使用:
while(in.equals("y"));
==运算符正在测试引用。
equals实际上会检查字符串的内容。
答案 3 :(得分:0)
你应该使用
而(in.equalsIgnoreCase( “N”)!);