使用扫描仪阅读

时间:2013-10-25 20:41:29

标签: java while-loop switch-statement java.util.scanner bluej

当我想使用扫描程序读取用户的名称,然后在字符串中分配名称的值,然后调用方法getName并给它一个名称的参数以打印出我的名字是.. ..,我的代码崩溃,不起作用我试图找出问题,但我不能

 public void getName(String name)
   {
       String s = "your name is: "+name   ;
   }
    public void userInput()
    {
        print();
        Scanner s = new Scanner(System.in);
        String read = s.nextLine();
        String op = read;
        while(!read.equals("Exit"))
        {  
            switch (op){
                case "a" :
                System.out.println("type your name:");
                read = s.nextLine();
                getName(read);
                print();
                read = s.nextLine();
                op = read;
                break;
                case"b" :
                System.out.println("by");
                print();
                read = s.nextLine();
                op = read;
                break;
            }

        }
    }

    public void print()
    {
        System.out.println("press a");
        System.out.println("press b");
    }

2 个答案:

答案 0 :(得分:1)

要使while条件为false,请在开关中添加default语句:

    while (!read.equals("Exit")) {
        switch (op) {
        case "a":
            System.out.println("type your name:");
            read = s.nextLine();
            getName(read);
            print();
            read = s.nextLine();
            op = read;
            break;
        case "b":
            System.out.println("by");
            print();
            read = s.nextLine();
            op = read;
            break;
        default: // Add this to finish loop when you type "Exit"
            read = s.nextLine();
        }

    }

修改

您对方法getName(读取)的调用无用,请尝试以下方法之一:

1。您可以让getName()返回一个字符串并将其存储在userInput()中以便稍后使用。顺便说一句,getSomething()方法通常用于返回一些东西。

public static String getName(String name) {
    String s = "Your name is: " + name;
    return s;
}

这是userInput()方法:

String name = getName(read);

2。或使用void getName(String name)方法打印内容:

System.out.println("Your name is: " + name);

并在getName(read)方法中调用userInput()

getName(read);

答案 1 :(得分:0)

您的代码在getName中没有做任何有用的事情。我的猜测是你要打印这个名字,如下所示:

public void getName(String name) // should rename this method 'printName'
{
    System.out.println("your name is: "+name);
}