编写一个程序,一直读取字符串,直到它读取字符串“xyz”。如果你的名字是 在输入的字符串中,程序打印“我的名字在那里。”否则,它打印“我的 名称未列出。请添加它。“
import java.util.*;
public class problem1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
String name,name2="xyz";
Scanner input=new Scanner(System.in);
name=input.next();
while(name!="xyz")
name=input.next();
}
{
if (name.equals("rania"))
System.out.println("my name is there");
else
System.out.println("please enter your name");
}
}
答案 0 :(得分:1)
您的问题是了解代码块的工作原理。也就是说,您使用{
打开一段代码,然后使用}
关闭它。通过执行此操作,{ ... }
中包含的所有代码都将是一个块,并且此块将作为语句的主体。如果正确缩进代码,您可以轻松检测与代码块相关的问题。您可以找到有关缩进here的更多信息。
此外,在比较String
时遇到问题。您应该使用equals
方法。这里有一个更深入的解释:How do I compare strings in Java?
这就是你的代码的样子:
while(!name.equals("xyz")) {
if (name.equals("rania")) {
System.out.println("my name is there");
} else {
System.out.println("please enter your name");
}
name=input.next();
}
注意:此代码不旨在解决您作业中所述的文字。它只是一个指南,使您的代码能够编译和运行没有问题。如何解决你的确切作业...这是你的工作,而不是我们的工作。
答案 1 :(得分:0)
实际上,如果你已经测试了你的代码片段(相当接近),那么你可以在几次迭代中使用它。
这是一个经过全面测试的代码段,按照问题陈述工作:
public static void main(String[] args)
{
// TODO Auto-generated method stub
String name = "rania";
String endString = "xyz";
Scanner input= new Scanner(System.in);
String aString =input.next();
// Assume name will not be found6
Boolean isNameFound = false;
while(!aString.equals(endString))
{
if (aString.equals(name))
{
isNameFound = true;
// This is to ensure program does not quit when the name is found
// break;
}
aString = input.next();
}
if(isNameFound)
{
System.out.println("My name FOUND");
}
else
{
System.out.println("My name NOT FOUND");
}
}
以下是案例1的输出:输入的字符串均未与所需名称匹配,直到输入结束字符串“xyz”
sjhsa
sdkhfds
khds;kuf
xyz
My name NOT FOUND
以下是案例2的输出:输入的一个字符串与所需名称匹配,程序结束。
afkhds
kjfdsgaks
fdgkjfd
gvkjfd
rania
My name FOUND