当我想使用扫描程序读取用户的名称,然后在字符串中分配名称的值,然后调用方法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");
}
答案 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);
}