使用while循环和条件

时间:2014-10-24 21:18:42

标签: java

  

编写一个程序,一直读取字符串,直到它读取字符串“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");
    }
}

2 个答案:

答案 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