首页 > 解决方案 > 无效输入后循环重复

问题描述

所有的计算都很好。当我得到一个无效条目并且用户输入一个新的正整数时,我遇到了问题。它不会重新开始循环。任何意见是极大的赞赏!

    public static void main(String[] args) {

    Scanner in = new Scanner(System.in);
    int start;
    int i;
    double squareRoot;

    System.out.println("Please enter a positive integer: ");
    start = in.nextInt();

        if (start > 0){
        do {

            squareRoot = Math.sqrt(start);
            start--;
            System.out.printf("%.4f", squareRoot);
            System.out.println();
        }
        while (start >= 0);
        }

    else {
            System.out.println("The number you entered is not a postive integer.");
            System.out.println("Please enter an integer greater than zero: ");
            start = in.nextInt();
            }
}

}

标签: loopswhile-loop

解决方案


如果您需要一遍又一遍地执行相同的步骤,则需要一个循环。所以添加一个带有简单条件的while循环并让它一遍又一遍地运行。

这是一个示例代码。我不得不选择退出,所以以-1为线索。

import java.util.Scanner;
public class HelloWorld {
 public static void main(String[] args) {

Scanner in = new Scanner(System.in);
int start;
int i;
double squareRoot;


System.out.println("Please enter a positive integer: ");
boolean quit = false;
while (!quit) {
    System.out.println("Enter the integer");    
start = in.nextInt();    
    if (start > 0){
    do {

        squareRoot = Math.sqrt(start);
        start--;
        System.out.printf("%.4f", squareRoot);
        System.out.println();

    }
    while (start >= 0);
    }
else if (start == -1) {
   quit = true;
}
else {
        System.out.println("The number you entered is not a postive integer.");
        System.out.println("Please enter an integer greater than zero: ");
}
}
}

}  

推荐阅读