Просто передайте его как параметр:
public static void main(String[] args) {
int in=getInput();
showInput(i);
}
public static int getInput(){
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
return num;
}
public static void showInput(int i){
System.out.println(i);
}
Это сохранит ввод в локальную переменную, которая действительна только внутри метода main
.
Также метод showInput
получает значение int
в качестве параметра, поэтому ему не нужно загружать его отдельно.
Или вы можете передать возвращаемое значение напрямую:
public static void main(String[] args) {
showInput(getInput());
}
Это пропускает сохранение ввода в переменной и передает его напрямую.
Обратите внимание, что оба пути по сути одинаковы.
Также обратите внимание, что вы должны close()
Scanner
, когда вы не Мне это больше не нужно. Это будет важно, если вы обрабатываете потоки, отличные от System.in
.
Закрытие означает, что вам больше не нужен ресурс и выдает его операционной системе.
Но если вы close()
a Scanner
, ресурс, на котором он построен, также будет закрыт.
Это означает, что вы не сможете использовать System.in
после этого снова. Возможно, вы захотите иметь один Scanner
, который создается и закрывается в методе main
и передается в метод getInput()
.
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int in=getInput(sc);
showInput(i);
sc.close();
}
public static int getInput(Scanner sc){
int num = sc.nextInt();
return num;
}
public static void showInput(int i){
System.out.println(i);
}
Или (даже лучше, если вы более продвинутый) с try-with-resources:
public static void main(String[] args) {
try(Scanner sc=new Scanner(System.in)){
int in=getInput(sc);
showInput(i);
}
}
public static int getInput(Scanner sc){
int num = sc.nextInt();
return num;
}
public static void showInput(int i){
System.out.println(i);
}
Если вы не хотите, чтобы экземпляр Scanner
создавался в методе main, вы можете создать новый метод для этого:
public static void main(String[] args) {
try(Scanner sc=getScanner()){
int in=getInput(sc);
showInput(i);
}
}
public static Scanner getScanner(){
return new Scanner(System.in);
}
public static int getInput(Scanner sc){
int num = sc.nextInt();
return num;
}
public static void showInput(int i){
System.out.println(i);
}