3

if ステートメント内でメソッドを呼び出してから、if else ステートメントで別のメソッドを呼び出すことはできますか?

キーボード入力を読み取るスキャナーを作成しました。ユーザーが指定したオプションに基づいて、別のメソッドが呼び出されます。次のように言えますか:

Scanner in = new Scanner (System.in);
char choice = in.next().charAt(0);

if(choice == 1)
{
    private static void doAddStudent(Student aStudent) 
    {
        this.theRegistry.addStudent(aStudent);
    }
}

どんな助けでも大歓迎です

4

5 に答える 5

6

もちろん、if または else ブロック内でメソッドを呼び出すこともできます。しかし、スニペットで試したのは、不可能なブロック内でメソッドを宣言することです。

修正されたスニペット:

Scanner in = new Scanner (System.in);
char choice = in.next().charAt(0);

if(choice == 1)
{
    this.theRegistry.addStudent(aStudent);
}

編集:

必要なコードは次のようになると思います。

public static void main(String[] args) {
    //some code
    Scanner in = new Scanner (System.in);
    char choice = in.next().charAt(0);

    if(choice == 1)
    {
        RegistryInterface.doAddStdent(student);
    }
    //some code
}

RegistryInterface.java

public class RegistryInterface {
    private static void doAddStudent(Student aStudent) {
        this.theRegistry.addStudent(aStudent);
    }
}
于 2013-04-26T12:57:32.727 に答える
1

ifはい、最初にメソッドを作成してから、ステートメント内でそれらを呼び出します。次のように:

private static void doAddStudent(Student aStudent) 
        {
            this.theRegistry.addStudent(aStudent);
        }

それから

 if(choice == 1)
    {
        doAddStudent(aStudent) ;////here you call the doAddStudent method

    }
于 2013-04-26T12:58:48.477 に答える
1

コードでは、ステートメント内でメソッドを呼び出しているだけではありませんif。新しいメソッドを定義しようとしています。そして、これは違法です。

私はあなたがこのようなものが欲しいと思っています:

Scanner in = new Scanner (System.in);
char choice = in.next().charAt(0);
if(choice == '1') {
    this.theRegistry.addStudent(aStudent);
}

char choiseまた、 intと比較していたことにも注意してください1。char と比較したいと思います'1'

于 2013-04-26T12:58:58.670 に答える