将Scanner对象作为参数传递给函数的基本语法
这是我写的非常基本的东西:
import java.util.Scanner; public class Projet { /** * @param args * @param Scanner */ public static void main(String[] args) { // TODO Auto-generated method stub System.out.println("Enter a digit"); Scanner in = new Scanner(System.in); getChoice(Scanner); in.close(); } public static int getChoice(Scanner n){ n = in.nextInt(); return n; } }
这里似乎有什么不对? 我之前有工作,我必须将Scanner类型和参数名称作为参数传递给函数…并且只需使用Scanner类型和参数作为函数的参数在main中调用该函数?
– – -编辑 – – –
以下新代码需要它:
import java.util.Scanner; public class Projet { /** * @param args * @param Scanner */ public static void main(String[] args) { // TODO Auto-generated method stub System.out.println("Enter a digit"); Scanner in = new Scanner(System.in); System.out.println(getChoice(in)); in.close(); } public static int getChoice(Scanner in){ return in.nextInt(); } }
@rgettman谢谢!
您需要in
调用方法时传递实际变量名称,而不是类名称Scanner
。
getChoice(in);
代替
getChoice(Scanner);
顺便说一下,你的getChoice
方法不会如图所示进行编译。 只需返回扫描程序返回的内容,这是一个int
,因为您声明getChoice
返回一个int
:
public static int getChoice(Scanner n){ return n.nextInt(); }