요즘은 조금만 길거나 복잡한것은 답변하기 싫어서 간단한것만 하다보니 답변횟수가 줄었다.

마침 간단한 질문이 올라왔길래 '야호~' 하고 작성했는데, 답변이 먼저 등록되어 버려서..

 

 

질문) java 전역변수 선언및 입력 질문입니다.

 

public static main void () 밖에서 static int N;이라고 선언을 하고

main 함수안에서 스캐너로 입력을 받을 경우 N= sc.nextInt();

다른 메소드에서 입력받은 N을 출력하지 못하는데요

N을 입력받아서 메인 외에 다른 메소드에서 쓸수 있으려면 어떻게 해야 하나요?

 

 

 

먼저 등록된 답변)

 

안녕하세요.

뭔가 오해하신 것 같습니다.
다른 메소드에서도 입력받은 N을 호출할 수는 있습니다.
 
소스코드 원문보기
  1. import java.util.Scanner; 
  2. public class AA { 
  3.    static int N; 
  4.    public static void main(String[] args) { 
  5.       Scanner sc = new Scanner(System.in); 
  6.       N = sc.nextInt(); 
  7.       AA a = new AA(); 
  8.       a.print(); 
  9.    public void print() { 
  10.       System.out.println(N); 

 
다만, 이것은 코딩의 문제로, 어떻게 코딩을 하셨는지 올려주셔야 확인이 가능할 것 같습니다.

 

 

 

등록 못한 내답변)

 

소스의 출력문을 보시면 이해하실 수 있을겁니다.

아래를 참고하세요~

 

 

1. CLASS

 

import java.util.Scanner;

public class t04_001 {
 
  static int N;
 
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
  
    N = sc.nextInt();
    aa();
  
    t04_001 b1 = new t04_001();
  
    int bb = b1.bb();
    System.out.println("여기는 bb 메소드에서 리턴받은 값 : " + bb);
  
    b1.cc();
  }
 
  public static void aa(){
    System.out.println("여기는 aa 메소드 내부 : " + N);
  }
 
  public int bb(){
    return N;
  }
 
  public void cc(){
    System.out.println("여기는 cc 메소드 내부 : " + N);
  }
}

 

 

2. RUN

 

123654
여기는 aa 메소드 내부 : 123654
여기는 bb 메소드에서 리턴받은 값 : 123654
여기는 cc 메소드 내부 : 123654