2015-11-22 86 views
0

我想调用这个方法从用户输入中输入一个坐标点。如何调用一个不返回任何东西的方法?

public class Cases { 

public static Result Case1(){ 
    Scanner in = new Scanner(System.in); 
    System.out.println("Enter index: "); 
    int i = in.nextInt(); //validate 
    System.out.print("Enter integers x, y to replace: "); 
    int x = in.nextInt(); 
    int y = in.nextInt(); 
    A[i] = new Point(x, y); 

    if(occupancy<i) 
     occupancy=i; 
    } 
} 

,但我不知道如何使它工作,因为它并不需要一个return语句。

这是我如何把它称为从我的主要方法:

Result r = null; 
r = Cases.Case1(); 

我想我所有的情况下,从switch语句到这个单独的方法,但我不能,甚至让他们的一个工作。我错过了什么?

+0

编辑:对不起,我认为你*做*需要在这里返回声明,这可能是问题。 (是的,我的编译器说“缺少return语句”。另外A和占用是未定义的。) – markspace

+1

'Cases.Case1()'返回一个'Result'对象。它不会那样编译。您应该将返回类型更改为void,并改变您称之为的方式(您不必将其分配给引用变量)。 –

回答

5

在Java中有一种声明方法的结构。从documentation

...方法声明有六个部分组成,依次是:

  1. 改性剂,如公共,私有,和其他人你将学习后约 。
  2. 返回类型 - 方法返回的值的数据类型, 或者如果方法没有返回值,则返回void。
  3. 方法名称 - 字段名称的规则适用于方法名称为 ,但是该约定稍有不同。
  4. 圆括号中的参数列表 - 输入 参数的逗号分隔列表,前面带括号括起来的数据类型 ()。如果没有参数,则必须使用空括号。
  5. 一个例外列表 - 稍后讨论。
  6. 方括号,括在大括号 - 方法的代码, 包括局部变量的声明,在这里。

所以,如果你需要,没有任何返回类型申报方法,需要在第二个位置写void

在你的代码

public static Result Case1(){ 

有返回类型Result,你需要返回。如果不想返回它 - 申报方法是这样的:

public static void Case1(){