Java “如何重复”;如果;输出为false时的语句

Java “如何重复”;如果;输出为false时的语句,java,if-statement,repeat,Java,If Statement,Repeat,我正在开发一个简单的游戏,在这个游戏中,用户必须猜测一个随机数。我已经设置了所有的代码,除了如果猜测太高或太低,我不知道如何允许他们重新输入一个数字,并继续玩,直到他们得到它。它只是停止;代码如下: import java.util.Scanner; import java.util.Random; public class Test { public static void main(String[] args) { Scanner input = new Scann

我正在开发一个简单的游戏,在这个游戏中,用户必须猜测一个随机数。我已经设置了所有的代码,除了如果猜测太高或太低,我不知道如何允许他们重新输入一个数字,并继续玩,直到他们得到它。它只是停止;代码如下:

import java.util.Scanner;
import java.util.Random;

public class Test {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        Random rand = new Random();

        int random = rand.nextInt(10) + 1;

        System.out.print("Pick a number 1-10: ");
        int number = input.nextInt();

        if (number == random) {
            System.out.println("Good!");
        } else if (number > random) {
            System.out.println("Too Big");
        } else if (number < random) {
            System.out.println("Too Small");
        }
    }
}
import java.util.Scanner;
导入java.util.Random;
公开课考试{
公共静态void main(字符串[]args){
扫描仪输入=新扫描仪(System.in);
Random rand=新的Random();
int random=rand.nextInt(10)+1;
系统输出打印(“选择一个数字1-10:”);
int number=input.nextInt();
如果(数字==随机){
System.out.println(“好!”);
}else if(数字>随机){
System.out.println(“太大”);
}else if(数字<随机数){
System.out.println(“太小”);
}
}
}

您可以使用
do…while

Random rand = new Random();
int random = rand.nextInt(10) + 1;
do {
  Scanner input = new Scanner(System.in);

  System.out.print("Pick a number 1-10: ");
  int number = input.nextInt();

  if (number == random) {
    System.out.println("Good!");
  } else if (number > random) {
    System.out.println("Too Big");
  } else if (number < random) {
    System.out.println("Too Small");
  }

} while ( number != random );
Random rand=new Random();
int random=rand.nextInt(10)+1;
做{
扫描仪输入=新扫描仪(System.in);
系统输出打印(“选择一个数字1-10:”);
int number=input.nextInt();
如果(数字==随机){
System.out.println(“好!”);
}else if(数字>随机){
System.out.println(“太大”);
}else if(数字<随机数){
System.out.println(“太小”);
}
}while(number!=随机);

将if语句括在do-while循环中,该循环将在用户没有猜到数字时循环:

 int number;
 do {
    System.out.print("Pick a number 1-10: ");
    number = input.nextInt();

    if (number == random) {
        System.out.println("Good!");
    } else if (number > random) {
        System.out.println("Too Big");
    } else if (number < random) {
        System.out.println("Too Small");
    }
 } while (number != random);
整数;
做{
系统输出打印(“选择一个数字1-10:”);
number=input.nextInt();
如果(数字==随机){
System.out.println(“好!”);
}else if(数字>随机){
System.out.println(“太大”);
}else if(数字<随机数){
System.out.println(“太小”);
}
}while(number!=随机);
您需要使用一个。代码应该是这样工作的:

import java.util.Scanner;
import java.util.Random;

public class Test {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        Random rand = new Random();

        int random = rand.nextInt(10) + 1;

        System.out.print("Pick a number 1-10: ");
        int number = input.nextInt();

        boolean found = false;
        while (!found) {
           if (number == random) {
                System.out.println("Good!");
               found = true;
            } else if (number > random) {
                System.out.println("Too Big, try again:");
                number = input.nextInt();
            } else if (number < random) {
                System.out.println("Too Small, try again:");
                number = input.nextInt();
            }
        }
    }
}
import java.util.Scanner;
导入java.util.Random;
公开课考试{
公共静态void main(字符串[]args){
扫描仪输入=新扫描仪(System.in);
Random rand=新的Random();
int random=rand.nextInt(10)+1;
系统输出打印(“选择一个数字1-10:”);
int number=input.nextInt();
布尔值=false;
而(!found){
如果(数字==随机){
System.out.println(“好!”);
发现=真;
}else if(数字>随机){
System.out.println(“太大,请重试:”);
number=input.nextInt();
}else if(数字<随机数){
System.out.println(“太小,请重试:”);
number=input.nextInt();
}
}
}
}

为了重复任何需要循环的内容

一种常见的重复方法,直到环体中部的一个条件得到满足,建立一个无限循环,并增加一个突破它的方法。

Java中创建无限循环的惯用方法是
while(true)

while(true){
系统输出打印(“选择一个数字1-10:”);
int number=input.nextInt();
如果(数字==随机){
System.out.println(“好!”);
break;//循环结束
}else if(数字>随机){
System.out.println(“太大”);
}else if(数字<随机数){
System.out.println(“太小”);
}
}

此循环将继续其迭代,直到代码路径到达
break
语句。

您正在寻找的是编程语言中的结构,它允许您一次又一次地执行特定的操作

这是使用循环完成的。
例如,请检查该文件。这就是您需要的。

为了有条件地重复代码,请使用循环

// this code will execute only once
System.out.print("Pick a number 1-10: ");
// initialize number to a value that would not be used and not equal random
int number = -1;

// the code inside the curly braces will repeat until number == random
while (number != random) {
    // get next number
    number = input.nextInt();
    // handle case one
    if(number > random) System.out.println("Too Big");
    // handle case two
    if(number < random) System.out.println("Too Small");
}
// once number == random, the condition is false so we break out of the loop
System.out.println("Good!");
//此代码只执行一次
系统输出打印(“选择一个数字1-10:”);
//将数字初始化为不使用且不等于随机值的值
整数=-1;
//花括号内的代码将重复,直到number==random
while(数字!=随机){
//下一个号码
number=input.nextInt();
//办案一
if(number>random)System.out.println(“太大”);
//处理案件二
if(number
有几种技术可以循环您的请求,其中包括:

  • while(){}

  • do{}while()

  • for(,){}

为了展示,您可以通过使用递归避免使用上述显式循环构造之一:

mport java.util.Scanner;
import java.util.Random;

public class Test {

    public static void ask(int random) {
        Scanner input = new Scanner(System.in);
        System.out.print("Pick a number 1-10: ");
        int number = input.nextInt();

        if (number == random) {
            System.out.println("Good!");
        } else if (number > random) {
            System.out.println("Too Big");
            ask(random);
        } else if (number < random) {
            System.out.println("Too Small");
            ask(random);
        }
    }


    public static void main(String[] args) {
        Random rand = new Random();

        int random = rand.nextInt(10) + 1;
        ask(random);
    }
}
mport java.util.Scanner;
导入java.util.Random;
公开课考试{
公共静态无效询问(int随机){
扫描仪输入=新扫描仪(System.in);
系统输出打印(“选择一个数字1-10:”);
int number=input.nextInt();
如果(数字==随机){
System.out.println(“好!”);
}else if(数字>随机){
System.out.println(“太大”);
询问(随机);
}else if(数字<随机数){
System.out.println(“太小”);
询问(随机);
}
}
公共静态void main(字符串[]args){
Random rand=新的Random();
int random=rand.nextInt(10)+1;
询问(随机);
}
}
在这里,
ask()
方法不断地调用自己,直到达到最终条件(用户猜对了)


取决于Java虚拟机的聪明程度,这可能会加重调用堆栈的压力,也可能不会。

number
是在循环内部定义的,这意味着如果在条件语句的循环外部使用它,它就超出了范围。@brandaemon。不,不会,随机数是在循环之前生成的。关于作用域,您的观点是正确的,变量的初始化可以放在外部和外部
mport java.util.Scanner;
import java.util.Random;

public class Test {

    public static void ask(int random) {
        Scanner input = new Scanner(System.in);
        System.out.print("Pick a number 1-10: ");
        int number = input.nextInt();

        if (number == random) {
            System.out.println("Good!");
        } else if (number > random) {
            System.out.println("Too Big");
            ask(random);
        } else if (number < random) {
            System.out.println("Too Small");
            ask(random);
        }
    }


    public static void main(String[] args) {
        Random rand = new Random();

        int random = rand.nextInt(10) + 1;
        ask(random);
    }
}