【问题标题】:Trying to understanding Exit, Loop, Method and If and Else [JAVA]试图理解 Exit、Loop、Method 和 If 和 Else [JAVA]
【发布时间】:2021-01-09 23:36:36
【问题描述】:

大家好,我的代码需要帮助。我试图了解如何使用方法、循环、if-else 语句和退出代码。所以我正在根据用户的选择编写一个简单的计算,但现在我不知道如何在用户输入不是数字 (意味着不允许使用字母)时让输入读取以循环回em> 它将继续返回选项,直到用户输入正确的选项,即 1 或 2。

如果我犯了任何错误,或者有办法进一步简化此代码,请告诉我。

想要这样的输出:-

[1] Calculation 
[2] Exit
Your choice: a

Please choose only 1 or 2

[1] Calculation 
[2] Exit
Your choice: 1

Enter 1st number: 1 
Enter 2nd number: 1 
Total: 2

代码:-

import java.util.Scanner;
    public class Testing {
    
        int ans;
        boolean Loop = true;
    
        public void SimpleCalculation() {
    
            Scanner input = new Scanner(System.in);
    
            while (Loop) {
                System.out.println("[1] Calculation ");
                System.out.println("[2] Exit");
                System.out.print("Your choice: ");
                ans = input.nextInt();
    
                if (ans == 1) {
                    System.out.print("Enter 1st number: ");
                    int number1 = input.nextInt();
    
                    System.out.print("Enter 2nd number: ");
                    int number2 = input.nextInt();
                    
                    int result = number1 + number2;
                    System.out.println("Total: " + result);
    
                } else if (ans == 2) {
                    System.out.println("Thank you");
                    input.close();
                    break;
                } else {
                    System.out.println("Please choose only 1 or 2");
                }
            }
             System.exit (0);
        }
        
        public static void main(String[] args) {
    
            Testing t = new Testing();
            t.SimpleCalculation();
        }
    }

【问题讨论】:

  • 嗯,我为这样的输入制作了一些简单的实用功能,但是对于您的问题来说,这将是一个矫枉过正的问题。这个问题很简单,你可以自己解决,这里有一个简单的教程来帮助你:geeksforgeeks.org/scanner-class-in-java/….
  • Scanner.hasNextInt 告诉您输入是否为整数。如果返回 false,您可以要求用户重新输入。
  • Scanner.hasNextInt 没听说过
  • 但是谢谢你让我先试试@user
  • 啊,我应该把它放在哪里,因为如果我把它放在 if-else 条件语句中它会给我错误,当我把它放在 else 时它没有读取,当我把它在while循环条件下它什么都不显示? @用户

标签: java loops if-statement methods exit


【解决方案1】:

我已经更新了你的代码:

public class Testing {

    public static void SimpleCalculation() {
        boolean Loop = true;
        
        Scanner input = new Scanner(System.in);

        while (Loop) {
            System.out.println("[1] Calculation ");
            System.out.println("[2] Exit");
            System.out.print("Your choice: ");
            while(!input.hasNextInt()) {
                System.out.println("Please choose only 1 or 2");
                input.nextLine();
                continue;
            }
            int ans = input.nextInt();

            if (ans == 1) {
                System.out.print("Enter 1st number: ");
                int number1 = input.nextInt();

                System.out.print("Enter 2nd number: ");
                int number2 = input.nextInt();
                
                int result = number1 + number2;
                System.out.println("Total: " + result);
            } else if (ans == 2) {
                System.out.println("Thank you");
                input.close();
                break;
            } else {
                System.out.println("Please choose only 1 or 2");
            }
        }
        
    }
    
    public static void main(String[] args) {
        SimpleCalculation();
    }

}

输出:

[1] Calculation 
[2] Exit
Your choice: a
Please choose only 1 or 2
[1] Calculation 
[2] Exit
Your choice: 1
Enter 1st number: 1
Enter 2nd number: 2
Total: 3

【讨论】:

  • @NISHANAJIHAH 这有用吗?
  • @NISHANAJIHAH 请检查此代码。它根据您的要求按预期工作。
  • @NISHANAJIHAH 如果有帮助,请将此标记为已接受并点赞?
  • 是的,谢谢,但我可以问为什么我不能把它放在 else @Anish 的底部
  • @NISHANAJIHAH 请将其标记为已接受的答案。 :)
猜你喜欢
  • 2018-04-16
  • 1970-01-01
  • 2012-01-17
  • 2013-05-03
  • 1970-01-01
  • 2015-10-28
  • 1970-01-01
  • 1970-01-01
  • 2012-06-02
相关资源
最近更新 更多