如何返回代码顶部?也许?

时间:2012-02-25 23:44:38

标签: java if-statement int

我对编程Java非常陌生,并且我确信这是一个非常简单的解决方案。我有以下代码,它的工作原理,但我想知道如何更改它,所以如果用户输入的东西不是int,它会在它给出错误消息后循环回到顶部,所以它会要求一个温度又来了。提前谢谢。

    Scanner in = new Scanner(System.in);
    //User input of temperature
    System.out.print("Enter temperature in Celsius: ");
    if (in.hasNextInt())
    {
        int temperature = in.nextInt();
        //Now determine what state the water will be in, either ice, gas, or water.
        if (temperature >=100)
        {
            System.out.print("Gas!");
        }
        else if ((temperature <100) && (temperature >0))
        {
            System.out.print("Water!");
        }
        else if (temperature <=0)
        {
            System.out.print("Ice!");
        }
    }
    else
    {
         System.out.println("Error: Not an Integer");
         System.out.print("Please enter temperature in Celsius: ");
    }

6 个答案:

答案 0 :(得分:5)

将其移至方法

public static void main( String args[] ){

    Scanner in = new Scanner(System.in);
    readInput( in );
}

public static void readInput( Scanner in ){

    System.out.print("Enter temperature in Celsius: "); 
    if ( in.hasNextInt() ){
        // do your stuff here
    }
    else {
        // print the errors
        readInput( in );
    }
}

答案 1 :(得分:1)

看起来你应该考虑使用while()循环。您可以使用代码段like this

Scanner scanner = new Scanner(System.in);
int input = -1; 
input = scanner.nextInt();
while (input != 0)
{
 System.out.println("Enter 0 to exit the loop.");
 input = scanner.nextInt(); //without this, you will hit a loop that never ends. 
{

您可以添加代码以转换该循环内的温度。

答案 2 :(得分:0)

您要找的是while loop

答案 3 :(得分:0)

你必须使用一个循环。在这里看一下介绍: http://www.leepoint.net/notes-java/flow/loops/loops.html

答案 4 :(得分:0)

用循环包装你的代码,为了这个目的,我会使用while(...),退出条件将是'int'输入。 http://docs.oracle.com/javase/tutorial/java/nutsandbolts/while.html

验证用户输入使用例如。正则表达式是这样的: userInput.matches( “[ - +] \ d +(\ \ d +)??”);

答案 5 :(得分:0)

最简单的解决方案是将代码放入无限的“运行”循环中。

Scanner in = new Scanner(System.in);
while (true) {
    //User input of temperature
    System.out.print("Enter temperature in Celsius: ");
    if (in.hasNextInt())
    {
        int temperature = in.nextInt();
        //Now determine what state the water will be in, either ice, gas, or water.
        if (temperature >=100)
        {
            System.out.print("Gas!");
        }
        else if ((temperature <100) && (temperature >0))
        {
            System.out.print("Water!");
        }
        else if (temperature <=0)
        {
            System.out.print("Ice!");
        }
    }
    else
    {
        System.out.println("Error: Not an Integer");
        System.out.print("Please enter temperature in Celsius: ");
    }
}

Run loops或者经常调用的主循环提供了一个接受用户输入并提供反馈的一致循环。如果/当您进入多线程/ GUI编程时,这就是您的大多数UI代码所在的位置。但是,大多数基于项目的环境(用于Android应用程序的Eclipse,用于iOS应用程序的Xcode等)具有比while (true)更复杂和惯用的运行循环。