扫描仪和if语句

时间:2016-02-09 17:23:18

标签: java

我是Java的新手,我想创建一个简单的程序,允许用户在3个选项(t,r和q)之间进行选择。 q意思是退出。我希望程序继续提示他们选择不同的选项,直到他们选择退出。下面是我的代码,它不起作用。我得到q,r和t需要解析为变量的错误,但是当我将它们设置为字符串时,它仍然无效。任何帮助将不胜感激。

Scanner input3= new Scanner(System.in);
String choice;
boolean valid;

do 
{
    System.out.println("Please pick an option. t, r or q");
    choice= input3.next();

    if(choice==t)
    {
        System.out.println("You chose triangle");
        valid=true;             
    }
    else if(choice==r)
    {
        System.out.println("You chose rectangle");
        valid=true;
    }
    else if (choice==q)
    {
        System.out.println("You chose to quit.");
        valid=false;
    }
    else
    {
        System.out.println("You chose wrong.");
        valid=true;
    }

}
while( valid==true);

4 个答案:

答案 0 :(得分:3)

你应该把它们放在引号"上,因为choice是字符串,你必须将它与字符串比较,例如:

do {
    System.out.println("Please pick an option. t, r or q");
    choice= input3.next();

    if(choice=="t"){
         System.out.println("You chose triangle");
         valid=true;             
    }

    else if(choice=="r"){
         System.out.println("You chose rectangle");
         valid=true;
    }

    else if (choice=="q"){
         System.out.println("You chose to quit.");
         valid=false;
    }
    else{
         System.out.println("You chose wrong.");
         valid=true;
    }

}
while( valid==true);

您可以使用 equals() 代替==来比较两个字符串:

do {
    System.out.println("Please pick an option. t, r or q");
    choice= input3.next();

    if(choice.equals("t")){
         System.out.println("You chose triangle");
         valid=true;             
    }

    else if(choice.equals("r")){
         System.out.println("You chose rectangle");
         valid=true;
    }

    else if (choice.equals("q")){
         System.out.println("You chose to quit.");
         valid=false;
    }
    else{
         System.out.println("You chose wrong.");
         valid=true;
    }

}
while( valid==true);

希望这有帮助。

答案 1 :(得分:3)

查看网络上的初学者教程(以及此问题:Java String.equals versus ==

t,首先需要将r和q设置为String变量。

e.g:

String choice;
String t = "t";
String r = "r";
String q = "q";

您还应该使用equals方法进行字符串相等。

e.g:

choice.equals(t);

答案 2 :(得分:3)

import java.util.Scanner;
public class TestClass {
    public static void main(String args[] ) throws Exception {
        Scanner input3= new Scanner(System.in);
        String choice;
        boolean valid;


             do {
                 System.out.println("Please pick an option. t, r or q");
                 choice= input3.next();
             if(choice.equals("t")){

                 System.out.println("You chose triangle");
                 valid=true;             
             }

             else if(choice.equals("r")){
                 System.out.println("You chose rectangle");
                 valid=true;
             }

             else if (choice.equals("q")){
                 System.out.println("You chose to quit.");
                 valid=false;
             }
             else{
                 System.out.println("You chose wrong.");
                 valid=true;
             }

             }
             while( valid==true);


    }
}

享受!!!

答案 3 :(得分:1)

需要将字符串与函数string1.equals(string2)进行比较。将所有if和if else语句更改为以下内容:

choice.equals("t");