java - do-while 来回答是或否? java

标签 java

我目前的目标是让这行代码只要“yes”为真就继续运行一遍,如果为“no”则停止,或者如果无效则提示用户做一个正确的选择。我完全不知道该怎么做。

    import java.util.Scanner;

    public class Temperature
    {
     public static void main(String[] args){

        Scanner input = new Scanner (System.in);
        System.out.println("Enter a number, a space and F to convert from degF to degC and C to convert to degC to degF");
        double deg = input.nextDouble();
        String letter = input.next().toUpperCase();
        char dg = letter.charAt(0);
        //String prompt;
       tempLoop:
        do{
            if( dg == 'C'){
                double cTemp= (deg-32)*5.0/9.0;
                System.out.printf("%f degC converted to degF is %.2f%n",deg, cTemp );;
            }
            else if(dg == 'F'){
                double fTemp = (deg*9/5) + 32;
                System.out.printf("%f degF converted to degC is %.2f%n",deg, fTemp );
                continue;
            }
            else{
                System.out.println("That character does not correspond to a valid unit of measure ");
                break;
            }
        }while(!(dg == 'C' || dg == 'F'));
        System.out.println("Would you like to continue?(yes/no)"); 
      }
     }

最佳答案

我稍微更新了你的代码。您现在可以键入 15F、15C、...(无空格)进行转换。在此之后,系统会询问您是否要继续。

public static void main(String[] args) {
        double deg = 0;
        Scanner input = new Scanner(System.in);

        do {
            System.out
                    .println("Enter a number and F to convert from degF to degC or C to convert to degC to degF");
            String text = input.next().toUpperCase();

            try {
                deg = Double.parseDouble(text.substring(0, text.length() - 1));
            } catch (NumberFormatException e) {
                e.printStackTrace();
            }

            if (text.endsWith("C")) {
                double cTemp = (deg - 32) * 5.0 / 9.0;
                System.out.printf("%f degC converted to degF is %.2f%n", deg, cTemp);
                ;
            } else if (text.endsWith("F")) {
                double fTemp = (deg * 9 / 5) + 32;
                System.out.printf("%f degF converted to degC is %.2f%n", deg, fTemp);
                continue;
            } else {
                System.out
                        .println("That character does not correspond to a valid unit of measure ");
            }
            System.out.println("Type YES to continue");
        } while (input.next().equalsIgnoreCase("YES"));
        input.close();

    }

关于java - do-while 来回答是或否? java ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21960477/

相关文章:

java - Apache Thrift : Server with sync and async methods, 有可能吗?

java - 避免使用 'ifs' 调用方法的最佳实践

java - 通过 gson 反序列化 json 文件时遇到问题

java - Android 清除我的应用程序的文件夹文件

java - Java 的 new 关键字是否一定表示堆分配?

java.util.NoSuchElementException(运行时错误)

java - 将 jsonarray 转换为字符串

java - 如何在 Eclipse/Java 中的同一工作区中引用另一个项目中的类

java - 如何以编程方式从另一个应用程序安装 Android Play 商店应用程序?

java - 如何通过在android中创建类的实例来执行onCreate方法