Java 请求是/否返回循环

Java 请求是/否返回循环,java,loops,Java,Loops,如果用户回答Y/Y,如何返回到try循环?我知道下面的代码没有询问用户的是否要重试(Y/N)?。目前我只能使用bufferedReader import java.io.*; public class Num10 { public static void main(String[] args){ String in=""; int start=0, end=0, step=0; BufferedReader input = new Bu

如果用户回答Y/Y,如何返回到try循环?我知道下面的代码没有询问用户的是否要重试(Y/N)?。目前我只能使用bufferedReader

import java.io.*;

public class Num10 {
    public static void main(String[] args){
        String in="";
        int start=0, end=0, step=0;

        BufferedReader input = new BufferedReader(new InputStreamReader(System.in));


        try{
            System.out.print("Input START value = ");
            in=input.readLine();
            start=Integer.parseInt(in);
            System.out.print("Input END value = ");
            in=input.readLine();
            end=Integer.parseInt(in);
            System.out.print("Input STEP value = ");
            in=input.readLine();
            step=Integer.parseInt(in);
        }catch(IOException e){
            System.out.println("Error!");
        }

        if(start>=end){
            System.out.println("The starting number should be lesser than the ending number");
            System.exit(0);
        }else
        if(step<=0){
            System.out.println("The step number should always be greater than zero.");
            System.exit(0);
        }

        for(start=start;start<=end;start=start+step){
            System.out.println(start);
        }       

        System.out.println("\nDo you want to try again (Y/N)?");
    }
}
import java.io.*;
公共类Num10{
公共静态void main(字符串[]args){
在“”中输入字符串;
int start=0,end=0,step=0;
BufferedReader输入=新的BufferedReader(新的InputStreamReader(System.in));
试一试{
系统输出打印(“输入起始值=”);
in=input.readLine();
start=Integer.parseInt(in);
系统输出打印(“输入结束值=”);
in=input.readLine();
end=Integer.parseInt(in);
系统输出打印(“输入步长值=”);
in=input.readLine();
步长=整数.parseInt(in);
}捕获(IOE异常){
System.out.println(“错误!”);
}
如果(开始>=结束){
System.out.println(“起始编号应小于结束编号”);
系统出口(0);
}否则

如果(步骤A
do…while
循环适用于此

boolean again = false;
do
{
     // your code here
     again = askQuestion();
} while(again);
或者您可以使用常规的
while
循环:

boolean again = true;
while(again)
{
    // your code here
    again = askQuestion();
}
对于这两种方法,
askQuestion
是另一种向用户提问并返回
true
false
use
do{……}while();

比如:

如果用户回答Y/Y,如何返回到try循环?
您不能返回到
尝试{….}
。您必须使用

public static void main(String... args){
    //your code
} 
而不是
publicstaticvoidmain(String[]args){}

要返回,请在所需的代码位置使用
main();

如果用户回答Y/Y,如何返回到try循环

try
不会创建循环。这就是问题所在

循环自动“返回”,直到循环结束。这就是循环的原因


因此,您在try块周围放置了一个实际的循环,并在循环结束时询问问题,如果回答为N/N,则中断循环(或其他任何形式;如果输入是其他垃圾,您可以自行决定如何处理).do
-
while
循环是合适的,因为它在结束时检查退出条件,而不是在开始时(如
while
for
)。

while
do…while
for
,以及
for…each
。while循环是最简单的。它如下所示:

while (condition) {
    // Some code
}
do {
    // Code
} while (condition);
boolean condition = true;
while (condition) {

    // Your code

    try {
        while (true) { //Creates an infinite loop
            in = input.readLine();
            if (in.equalsIgnoreCase("y")) {
                condition = true;
                break;
            } else if (in.equalsIgnoreCase("n")) {
                condition = false;
                break;
            } else {
                System.out.println("Please enter either Y or N.");
            }
        }
    } catch (IOException e) {
        System.out.println("ERROR!");
    }

}
基本上,在我放置“条件”的地方,您可以放置任何布尔值。布尔值只是一个值,可以是
true
false
,而不是其他值。在Java中,您可以创建
boolean
类型的变量,但通常情况下,您不会显式创建布尔值

相反,您将使用条件语句。例如,
x
x==y
x>=y
都是“条件语句”。这意味着,它们最终将计算为布尔值。因此,在本代码中:

int x = 1;
int y = 5;
if (x < y) {
    // Code
}
do…while
的工作原理与
while
相同,但它始终至少运行一次,即使条件为
false

<<代码> > 和……每个稍微复杂一些。它们实际上只是快捷方式。请考虑下面的代码:

int i = 0;
while (i < 10) {
    System.out.println("I is: " + i);
    i++;
}
该代码将执行与第一个代码相同的操作,但是它使用了一个
for
循环。正如您所看到的,
for
循环有三个部分。在第一个部分中,您可以声明一个变量,在第二个部分中,您可以放置一个条件,在第三个部分中,您可以放置一些在循环的每次迭代中运行的内容。
for
循环在对数组进行迭代,但您可能还没有学会,所以不要担心

每个
循环的
for…都比其他循环复杂,因此,如果您还不了解它,请不要担心。基本上,这是获取列表的所有元素或集合API中的任何内容的快速方法。例如,假设您有一个字符串列表,您可以使用它来获取列表中的所有字符串:

for (String string : aList) {
    System.out.println(string);
}
这将遍历列表中的每个字符串并将其打印出来

不管怎样,回到手头的问题。在这里,我们需要选择一个循环来使用,似乎最适合这种情况的是一个简单的
while
循环。只需执行以下操作:

while (condition) {
    // Some code
}
do {
    // Code
} while (condition);
boolean condition = true;
while (condition) {

    // Your code

    try {
        while (true) { //Creates an infinite loop
            in = input.readLine();
            if (in.equalsIgnoreCase("y")) {
                condition = true;
                break;
            } else if (in.equalsIgnoreCase("n")) {
                condition = false;
                break;
            } else {
                System.out.println("Please enter either Y or N.");
            }
        }
    } catch (IOException e) {
        System.out.println("ERROR!");
    }

}
在这里,我们使用两个
while
循环。第一个循环包装整个代码,检查名为
condition
的布尔值。我们已将其初始化为
true
,因此循环将始终至少运行一次。第二个循环,我创建了另一个
while
循环。在这里,我创建了
while(true)
,它将永远运行。但是,您可以通过使用
break
关键字来“中断”循环。我之所以使用它,是因为用户有可能输入“y”或“n”以外的内容。在这种情况下,它应该再次问他们。如果它得到“y”,它将
条件
设置为
,并中断循环(这在技术上是不必要的,因为条件已设置为
)它将其设置为
false
并中断循环。由于它现在是
false
,循环将退出,程序将结束。

A
try
块不是循环。