Java - 매개변수를 이용한 함수 고립화
외부에서의 변화가 영향을 줄수가 있다.
- 함수를 고립시켜야함
- 지역화시켜서 문제발생하지않도록해결
예시)
import java.util.Scanner;
public class StructuredStudy {
public static void main(String[] args) {
int[] korList = new int[3];
int menu;
boolean keepLoop = true;
while(keepLoop)
{
menu =메뉴입력();
switch(menu)
{
case 1:
성적입력(korList);
break;
case 2:
성적출력(korList);
break;
case 3:
System.out.println("Bye~~");
keepLoop = false;
break;
default:
System.out.println("잘못된 값을 입력하셨습니다. 메뉴는 1~3까지입니다.");
}
}
}//main 함수
static int 메뉴입력() {
Scanner scan = new Scanner(System.in);
System.out.println("┌──────────────────┐");
System.out.println("│ 메인 메뉴 │");
System.out.println("└──────────────────┘");
System.out.println("\t1. 성적입력 ");
System.out.println("\t2. 성적출력 ");
System.out.println("\t3. 종료 ");
System.out.print("\t선택> ");
int menu = scan.nextInt();
return menu;
}
static void 성적출력(int[] kors) {
int total = 0;
float avg;
for(int i = 0; i < 3; i++)
{
total += kors[i];
}
avg = total / 3.0f;
System.out.println("┌──────────────────┐");
System.out.println("│ 성적 출력 │");
System.out.println("└──────────────────┘");
System.out.println();
for(int i = 0; i < 3; i++)
{
System.out.printf("국어 %d : %3d\n", 3-i, kors[i]);
}
System.out.printf("총점 : %3d\n", total);
System.out.printf("평균 : %6.2f\n", avg);
System.out.println("────────────────────────");
}
static void 성적입력(int[] kors) {
Scanner scan = new Scanner(System.in);
int kor;
System.out.println("┌──────────────────┐");
System.out.println("│ 성적 입력 │");
System.out.println("└──────────────────┘");
System.out.println();
for(int i = 0; i < 3; i++) {
do {
System.out.printf("국어%d : ", i+1);
kor = scan.nextInt();
if(kor < 0 || 100 < kor)
{
System.out.println("국어성적은 0~100까지의 범위만 입력이 가능합니다.");
}
}while(kor<0 || 100 < kor);
kors[i] = kor;
}
System.out.println("────────────────────────");
}
}
전역변수를 쓰지 않을 것이다. -> 메인함수밖의 함수들은 매개변수를 사용하면된다. 매개변수 : 다른 외부로부터의 변화에 영향을 받지않는다.
전역변수로 쓰던 static 변수가 다시 메인함수안으로 들어갔다. 그리고 변수명 korList로 바꾼후 static void 성적출력(int[] kors) { int[] kors 로 매개변수를 썼다. 프로그램이 안정적이고 매우 편리하다!
**팁 성적입력함수를 보면 kor 이라는 변수가 추가된것을 볼수있다. kor[i] 값으로 된 변수명은 kor으로 바꿨다. 이러면 프로그램이 매우 깔끔해짐을 알수있다.
참고:https://youtu.be/bj915-ln1HI 뉴렉쌤
댓글남기기