我是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);
答案 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");