为什么这个方法被调用两次?

时间:2014-10-10 01:06:29

标签: java methods execution

我目前正在为我的课做一个相当简单的项目,但我遇到了这个奇怪的问题。 这是代码:

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”作为示例,但它执行两次返回方法两次。对此有何见解?欢迎所有回复,非常感谢。谢谢!

1 个答案:

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