Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 当循环在末尾到达continue语句时,它不会';不要从顶部重新启动_Java_Loops_While Loop_Do While - Fatal编程技术网

Java 当循环在末尾到达continue语句时,它不会';不要从顶部重新启动

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;//

好的,我创建了以下程序。它尚未完成,但当代码结束时(y或n部分),用户决定再试一次,他们没有选择输入新赌注,它只使用第一次输入的赌注

(如果您需要了解代码方面的帮助或认为其他人可能难以理解,请发表评论)

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;
                }
            }
        }
    }
}