我目前正在为我的课做一个相当简单的项目,但我遇到了这个奇怪的问题。 这是代码:
import java.util.Scanner;
public class StudentMain {
static Scanner kb = new Scanner(System.in);
public static void main(String[] args) {
System.out.println("This program allows you to organize a student's info in a clear, coherent form");
System.out.println("Press [1] to continue");
int x = kb.nextInt();
if (x==1){
Name();
ID();
String IDen = ID();
String name = Name();
System.out.println(name);
System.out.println(IDen);
}
}
private static String Name(){
String SName;
System.out.println("Enter Student name: ");
SName = kb.nextLine();
return SName;
}
private static String ID(){
String Sid;
System.out.println("Enter Student I.D: ");
Sid = kb.nextLine();
return Sid;
}
}
我对该计划的意图列于上面的印刷声明中,但这是我现在最关心的问题。 每当我运行程序时:我得到这个结果(在Eclipse中使用它):
This program allows you to organize a student's info in a clear, coherent form
Press [1] to continue
1
Enter Student name:
Enter Student I.D:
John
Enter Student I.D:
1034172
Enter Student name:
John
John
1034172
如您所见,我使用“John”和“1034172”作为示例,但它执行两次返回方法两次。对此有何见解?欢迎所有回复,非常感谢。谢谢!
答案 0 :(得分:2)
因为你没有使用第一次方法调用的结果,所以你要调用它两次,所以不需要那些。
Name();//<-------------(1)
ID();//<-------------(1)
//You can remove these lines
String IDen = ID();//<-------------(2)
String name = Name();//<-------------(2)
注意:您应遵循命名约定,因为方法名称/变量名称(常量除外)应以小写字母开头。
此处Name();
是方法调用,无论您是否使用返回值,都由您决定。
Name();//First Call
String name =Name();//Second Call