【问题标题】:loop validation until user selects correct option, if correct option is not selected keep on looping循环验证直到用户选择正确的选项,如果没有选择正确的选项继续循环
【发布时间】:2016-11-10 02:35:41
【问题描述】:

如果用户选择了它应该终止的两个选项之一,则需要能够循环,如果用户选择无效的选项,则继续循环直到选择其中一个选项

import java.util.Scanner;
    public class conversion {
        public static void main(String[] args){
            Scanner input = new Scanner(System.in);
            System.out.println("Which conversion do you want?");
            System.out.println("Pounds to Kilograms(enter 1)");
            System.out.println("Kilograms to Pounds(enter 2)");
            double kilograms, pounds;
            int choice = input.nextInt();

            while(){

                if(choice == 1){
                    System.out.println("What weight value do you want converted?");
                    pounds = input.nextDouble();
                    kilograms = pounds / 2.20462;
                    kilograms = Math.round(kilograms * 100.0) / 100.0;
                    System.out.println( +pounds+ " pounds is equal to " +kilograms+ " kilograms");
                }

                else if(choice == 2){
                System.out.println("What weight value do you want converted?");
                    kilograms = input.nextDouble();
                    pounds = kilograms/0.453592;
                    pounds = Math.round(pounds * 100.0) / 100.0;
                    System.out.println( +kilograms+ " kilograms is equal to " +pounds+ " pounds");
                    }
                else if((choice != 1) || (choice != 2)){
                    System.out.println("Invalid please try again");
                    System.out.println("Which conversion do you want?");
                    System.out.println("Pounds to Kilograms(enter 1)");
                    System.out.println("Kilograms to Pounds(enter 2)");
                    choice = input.nextInt();
                }


            }

        }
    }
  • 显示选择菜单;
  • 询问用户他们想要哪种操作;
  • 读入用户响应;
  • 确定它是否是可接受的响应,如果不是,则重复请求。
  • 计算并显示结果

显示菜单并询问用户他们想要哪种转换:

您想要哪种转换?

然后询问用户应该转换什么重量值。

你想转换什么重量值?

如果用户选择 1,则将磅转换为公斤,否则如果用户选择 2,则将公斤转换为磅,否则如果用户选择其他任何值,则告诉用户他们的答案无效并请求另一个答案。

【问题讨论】:

  • 那么,有什么问题或疑问?

标签: java loops if-statement while-loop


【解决方案1】:

使用while (true)。当你想退出循环时放一个break;

int choice = input.nextInt(); 放在顶部,循环内部,而不是末尾。

也可以只使用else 来捕获所有可能的无效输入。


double kilograms, pounds;
while (true) {

        System.out.println("Which conversion do you want?");
        System.out.println("Pounds to Kilograms(enter 1)");
        System.out.println("Kilograms to Pounds(enter 2)");

        int choice = input.nextInt();

       if (choice == 1) {
            // okay 
            lbsToKg(); // TODO: implement
            break; // stops the loop 
        } else {  
            // invalid, will already continue the loop 
        } 

【讨论】:

    猜你喜欢
    • 2018-12-01
    • 2012-06-19
    • 2018-03-10
    • 2016-08-11
    • 1970-01-01
    • 2019-08-03
    • 2014-07-09
    • 2016-04-14
    • 1970-01-01
    相关资源
    最近更新 更多