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

时间:2016-09-05 12:06:41

标签: 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中调试时,

找不到源错误

2 个答案:

答案 0 :(得分:2)

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

使用equals而不是operator&#34; ==&#34;。

检查Oracle教程:Comparing Strings

答案 1 :(得分:0)

在while状态下,您正在比较ch=="y"。比较字符串时,您应该使用equals方法,例如"y".equals(ch)。等于运算符将测试这两个值是否具有相同的参考值,显然,它们不会。