java - 输入 'y' 后,代码应再次询问选择,但它不会发生

标签 java

import java.util.Scanner;
public class SwitchCase {

    public static void main(String[] args) {

        Scanner sc=new Scanner(System.in);

        String ch="NULL";
        do

        {
            System.out.println("Enter your choice:");
            String str=sc.next();
            switch(str)
          {

            case "Add":
            {
            System.out.println("Enter 2 nos:");
            int a=sc.nextInt();
            int b=sc.nextInt();
            int c=a+b;
            System.out.println("Adiition is:"+c);
            break;
            }

            case "Sub":
            {
                System.out.println("Enter 2 nos:");
                int a1=sc.nextInt();
                int a2=sc.nextInt();
                int a3=a1-a2;
                System.out.println("Sub is:"+a3);
                break;

            }
            case "Multiply":
            {
                System.out.println("Enter 2 nos:");
                int a1=sc.nextInt();
                int a2=sc.nextInt();
                int a3=a1*a2;
                System.out.println("Sub is:"+a3);
                break;
            }

            case "Divide":
            {
                System.out.println("Enter 2 nos:");
                int a1=sc.nextInt();
                int a2=sc.nextInt();
                int a3=a1/a2;
                System.out.println("Sub is:"+a3);
                break;
            }
            case "Fib":
            {
                System.out.println("Enter the range:");
                int n=sc.nextInt();

                 if (n == 0)
                 {
                     System.out.println("0");
                 } 
                 else if (n == 1) 
                 {
                       System.out.println("0 1");
                 }
                 else 
                 {
                       System.out.print("0 1 ");
                       int a = 0;
                       int b = 1;
                       for (int i = 1; i < n; i++)
                       {
                           int nextNumber = a + b;
                           System.out.print(nextNumber + " ");
                           a = b;
                           b = nextNumber;
                       }            
                 }
        }
    }
        System.out.println("Do you want to continue? y or n");
      ch=sc.next();
        }           while(ch=="y");

    }

}

在 while 循环之后,当用户输入“y”时,它应该询问“你想继续吗?”但同样的情况不会发生。我调试了代码,它运行良好,直到“你想继续吗?” ”但在那之后:

在eclipse中调试时出现源未找到错误

最佳答案

while(ch.equals("y"));

使用等于而不是运算符“==”。

查看Oracle教程:Comparing Strings

关于java - 输入 'y' 后,代码应再次询问选择,但它不会发生,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39330255/

相关文章:

java - java字符串中的单词

java - Appium找不到 'adb.exe'

java - 使用 BigInteger 类的递归查找阶乘

java - 计算电话号码中的数字

java - 如何在 JMenuBar 和 JToolbar 之间创建分隔

java - 如何将 Web 服务部署到 Amazon EC2?

java - 找不到标志。正在寻找父类(super class)而不是子类

java - 如何从 LinkedHashMap 中按升序获取值

Java DynamoDBMapper。映射属性值 'M'

java - 如何决定在 Spring Security PersistentTokenRepository.removeUserTokens 中删除哪个持久 token