Java 当循环在末尾到达continue语句时,它不会';不要从顶部重新启动
好的,我创建了以下程序。它尚未完成,但当代码结束时(y或n部分),用户决定再试一次,他们没有选择输入新赌注,它只使用第一次输入的赌注 (如果您需要了解代码方面的帮助或认为其他人可能难以理解,请发表评论)Java 当循环在末尾到达continue语句时,它不会';不要从顶部重新启动,java,loops,while-loop,do-while,Java,Loops,While Loop,Do While,好的,我创建了以下程序。它尚未完成,但当代码结束时(y或n部分),用户决定再试一次,他们没有选择输入新赌注,它只使用第一次输入的赌注 (如果您需要了解代码方面的帮助或认为其他人可能难以理解,请发表评论) import java.util.*; 公共类Lab15{ 静态扫描仪kin=新扫描仪(System.in); 公共静态void main(字符串[]args){ 双倍货币=1000; System.out.println(“欢迎你从1000美元开始玩垃圾游戏!”); int play=1;//
import java.util.*;
公共类Lab15{
静态扫描仪kin=新扫描仪(System.in);
公共静态void main(字符串[]args){
双倍货币=1000;
System.out.println(“欢迎你从1000美元开始玩垃圾游戏!”);
int play=1;//用于取消整个循环的变量
char yesNo;//如果用户想继续播放或不继续播放
而(金钱>0&&play==1){
System.out.print(“请输入您想下注的金额:”);
双倍赌注=kin.nextDouble();
而((下注0)){
进行{//循环以测试下注是否合法
如果(钱金钱| |赌注<0);
金钱=赌注;
System.out.println(“您有下注$”+下注+”和“+剩下的钱+”);
intdie1=(1+(int)(6*Math.random());
intdie2=(1+(int)(3*Math.random());
整数和=die1+die2;
System.out.println(“您滚动了“+die1+”和“+die2+”,总计“+sum”);
System.out.print(“您想再次播放(y)还是不播放(n)”;
yesNo=kin.next().charAt(0);
int loopBreak=0;//在循环吼叫时中断do
做{
如果(yesNo=='y'){//取上面的是否以重新启动循环
System.out.println(“重新启动…”);
loopBreak+=1;
继续;
}
else if(yesNo=='n'){
System.out.println(“感谢您的参与”);
play-=1;//取消整个程序
打破
}
否则{
System.out.println(“请输入'y'或'n'”);
}
}而(loopBreak==0);
如果(播放==0){
打破
}
}
}
}
}
这一切都是关于嵌套while循环的,它不会在需要时停止。是这样的
while(money > 0 && play == 1) {
System.out.print("Please Enter The Amount You Want To Bet: ");
double bet = kin.nextDouble();
while((bet <= money || bet > 0)) {
...
do {
if(yesNo == 'y') { //take above yes no to restart loop or not
System.out.println("Restarting...");
loopBreak += 1;
continue;
}
else if(yesNo == 'n') {
System.out.println("Thank You For Playing");
play -= 1; //to cancel whole program
break;
}
else {
System.out.println("Please Enter 'y' Or 'n'");
}
} while(loopBreak == 0);
if(play == 0) {
break;
}
}
}
部分。无论如何,更正的代码在这里(我尝试了所有的可能性,它工作了)
import java.util.*;
公共类Lab15{
静态扫描仪kin=新扫描仪(System.in);
公共静态void main(字符串[]args){
双倍货币=1000;
System.out.println(“欢迎你从1000美元开始玩垃圾游戏!”);
int play=1;//用于取消整个循环的变量
char yesNo;//如果用户想继续播放或不继续播放
而(金钱>0&&play==1){
System.out.print(“请输入您想下注的金额:”);
双倍赌注=kin.nextDouble();
而((下注0)){
进行{//循环以测试下注是否合法
如果(钱金钱| |赌注<0);
金钱=赌注;
System.out.println(“您有下注$”+下注+”和“+剩下的钱+”);
intdie1=(1+(int)(6*Math.random());
intdie2=(1+(int)(3*Math.random());
整数和=die1+die2;
System.out.println(“您滚动了“+die1+”和“+die2+”,总计“+sum”);
System.out.print(“您想再次播放(y)还是不播放(n):”;
yesNo=kin.next().charAt(0);
int loopBreak=0;//在循环吼叫时中断do
做{
如果(yesNo=='y'){//取上面的是否以重新启动循环
System.out.println(“重新启动…”);
loopBreak++;
继续;
}
else if(yesNo=='n'){
System.out.println(“感谢您的参与”);
播放--;//取消整个程序
打破
}
否则{
System.out.println(“请输入'y'或'n':”;
}
}而(loopBreak==0);
如果(播放==0 | |循环中断==1){
打破
}
}
}
}
}
祝你有愉快的一天 另一种解决方案是使用标记的中断/继续 但是,应该谨慎使用(或者根本不使用)。你也许可以用其他的方法来简化它
package test.test;
import java.util.Scanner;
public class Lab15 {
static Scanner kin = new Scanner(System.in);
public static void main(String[] args) {
double money = 1000;
System.out.println("Welcom To Craps You Start With 1000$!!!");
int play = 1; // variable to cancel whole loop
char yesNo; // if user wants to continue playing or not
//Labeled <-----------------
start: while (money > 0 && play == 1) {
System.out.print("Please Enter The Amount You Want To Bet: ");
double bet = kin.nextDouble();
while ((bet <= money || bet > 0)) {
do { // loop to test if the bet is legit
if (money < bet || bet < 0) {
System.out.print("Sorry Invalid Bet; Please Enter A Legitimant Bet: ");
bet = kin.nextDouble();
}
} while (bet > money || bet < 0);
money -= bet;
System.out.println("You Have Bet $" + bet + " And Have " + money + " Left");
int die1 = (1 + (int) (6 * Math.random()));
int die2 = (1 + (int) (3 * Math.random()));
int sum = die1 + die2;
System.out.println("You Rolled " + die1 + " and " + die2 + " totaling " + sum);
System.out.print("Do You Want To Play Again(y) Or Not(n)");
yesNo = kin.next().charAt(0);
int loopBreak = 0; // to break do while loop bellow
do {
if (yesNo == 'y') { // take above yes no to restart loop or not
System.out.println("Restarting...");
loopBreak += 1;
//Labeled continue <-----------------
continue start;
} else if (yesNo == 'n') {
System.out.println("Thank You For Playing");
play -= 1; // to cancel whole program
break;
} else {
System.out.println("Please Enter 'y' Or 'n'");
}
} while (loopBreak == 0);
if (play == 0) {
break;
}
}
}
}
}
package test.test;
导入java.util.Scanner;
公共类Lab15{
静态扫描仪kin=新扫描仪(System.in);
公共静态void main(字符串[]args){
双倍货币=1000;
System.out.println(“欢迎你从1000美元开始玩垃圾游戏!”);
int play=1;//用于取消整个循环的变量
char yesNo;//如果用户想继续播放或不继续播放
//标记为0&&play==1){
System.out.print(“请输入您想下注的金额:”);
双倍赌注=kin.nextDouble();
而((下注0)){
进行{//循环以测试下注是否合法
如果(钱 while(money > 0 && play == 1) {
--> System.out.print("Please Enter The Amount You Want To Bet: ");
--> double bet = kin.nextDouble();
//because below while loop continues to loop
while((bet <= money || bet > 0)) {
...
}
}
import java.util.*;
public class Lab15 {
static Scanner kin = new Scanner(System.in);
public static void main(String[] args) {
double money = 1000;
System.out.println("Welcom To Craps You Start With 1000$!!!");
int play = 1; //variable to cancel whole loop
char yesNo; //if user wants to continue playing or not
while(money > 0 && play == 1) {
System.out.print("Please Enter The Amount You Want To Bet: ");
double bet = kin.nextDouble();
while((bet <= money || bet > 0)) {
do { //loop to test if the bet is legit
if(money < bet || bet < 0) {
System.out.print("Sorry Invalid Bet; Please Enter A Legitimant Bet: ");
bet = kin.nextDouble();
}
} while(bet > money || bet < 0);
money -= bet;
System.out.println("You Have Bet $" + bet + " And Have " + money + " Left");
int die1 = (1 + (int) (6 * Math.random()));
int die2 = (1 + (int) (3 * Math.random()));
int sum = die1 + die2;
System.out.println("You Rolled " + die1 + " and " + die2 + " totaling " + sum);
System.out.print("Do You Want To Play Again(y) Or Not(n): ");
yesNo = kin.next().charAt(0);
int loopBreak = 0; //to break do while loop bellow
do {
if(yesNo == 'y') { //take above yes no to restart loop or not
System.out.println("Restarting...");
loopBreak++;
continue;
}
else if(yesNo == 'n') {
System.out.println("Thank You For Playing");
play--; //to cancel whole program
break;
}
else {
System.out.println("Please Enter 'y' Or 'n': ");
}
} while(loopBreak == 0);
if(play == 0 || loopBreak == 1) {
break;
}
}
}
}
}
package test.test;
import java.util.Scanner;
public class Lab15 {
static Scanner kin = new Scanner(System.in);
public static void main(String[] args) {
double money = 1000;
System.out.println("Welcom To Craps You Start With 1000$!!!");
int play = 1; // variable to cancel whole loop
char yesNo; // if user wants to continue playing or not
//Labeled <-----------------
start: while (money > 0 && play == 1) {
System.out.print("Please Enter The Amount You Want To Bet: ");
double bet = kin.nextDouble();
while ((bet <= money || bet > 0)) {
do { // loop to test if the bet is legit
if (money < bet || bet < 0) {
System.out.print("Sorry Invalid Bet; Please Enter A Legitimant Bet: ");
bet = kin.nextDouble();
}
} while (bet > money || bet < 0);
money -= bet;
System.out.println("You Have Bet $" + bet + " And Have " + money + " Left");
int die1 = (1 + (int) (6 * Math.random()));
int die2 = (1 + (int) (3 * Math.random()));
int sum = die1 + die2;
System.out.println("You Rolled " + die1 + " and " + die2 + " totaling " + sum);
System.out.print("Do You Want To Play Again(y) Or Not(n)");
yesNo = kin.next().charAt(0);
int loopBreak = 0; // to break do while loop bellow
do {
if (yesNo == 'y') { // take above yes no to restart loop or not
System.out.println("Restarting...");
loopBreak += 1;
//Labeled continue <-----------------
continue start;
} else if (yesNo == 'n') {
System.out.println("Thank You For Playing");
play -= 1; // to cancel whole program
break;
} else {
System.out.println("Please Enter 'y' Or 'n'");
}
} while (loopBreak == 0);
if (play == 0) {
break;
}
}
}
}
}