java) 전역변수에 예외가 존재하나요?
      글쓴이: yidj0205 / 작성시간: 수, 2022/08/03 - 1:02오후    
  
  input이 2인 경우 dyn함수 내에서의 n은 1을 갖지만, dyn함수를 호출한 후의 main함수의 n은 2를 갖습니다.
이유가 무엇인가요?
import java.io.IOException;
import java.util.Scanner;
 
public class Main {
 
	public static int ans = 0;
	public static int n;
 
	static void dyn(int n) {
		if (n % 3 == 0) {
			ans++;
			n = n / 3;
		} else if (n % 2 == 0) {
			ans++;
			n = n / 2;
			System.out.println(n);
		} else {
			ans++;
			n = n - 1;
		}
	}
 
	public static void main(String[] args) throws IOException {
		// TODO Auto-generated method stub 0(48) 소문자(49, 74) 대문자(17, 42) 띄어쓰기(-16)
		Scanner in = new Scanner(System.in);
		StringBuilder sb = new StringBuilder();
 
		n = in.nextInt();
 
		dyn(n);
 
		System.out.print(n);
 
	}
}Forums: 


main 메소드 내에 n 은 전역변수 입니다.
main 메소드 내에 n 은 전역변수 입니다.
dyn 의 인자값으로 입력된 변수 n은 전역변수와 별개입니다.
댓글 달기