Java 코드연습

[뉴렉처] 구조체를 이용한 코드 작성하기

양상추상츄 2021. 10. 18. 13:29

package Exam;

public class Exam {
	int kor;
	int eng;
	int math;
	
}
package Exam;

import java.util.Scanner;

public class ExamProgram {

	public static void main(String[] args) {
		
		Exam exam = new Exam(); 
		//Exam exam; 은 빈공간임 정수같은거는 참조형X, 
		//클래스는 참조형이라 new를통해 생성해야함
		
		//입력
		input(exam);
		
		//출력
		print(exam);
		
	}

	private static void print(Exam exam) {
		int total;
		float avg;
		
		total = exam.kor + exam.eng + exam.math;
		avg = total / 3.0f;
		
		System.out.println("------------------------------------");
		System.out.println("@@@@@@@@@@@@@성적출력@@@@@@@@@@@@@@@@");
		
		System.out.printf("\t국어: %3d\n", exam.kor);// \t 탭, %3d 3칸 정렬, \n 한칸내리기
		System.out.printf("\t영어: %3d\n", exam.eng);
		System.out.printf("\t수학: %3d\n", exam.math);
		
		
		System.out.printf("\t총점: %3d\n", total); // 3칸 정렬
		System.out.printf("\t평균: %6.2f\n", avg); // 소수점 2자리 까지 나오고 6칸 정렬
		System.out.println("------------------------------------");
		
	}

	private static void input(Exam exam) {
		System.out.println("------------------------------------");
		System.out.println("@@@@@@@@@@@@@성적입력@@@@@@@@@@@@@@@@");
		Scanner scan = new Scanner(System.in);
		
		int kor = exam.kor;
		int eng = exam.eng;
		int math = exam.math;
		
		do{
			System.out.printf("국어 : ");
			kor=scan.nextInt();//점수입력
			
			if(kor<0||100<kor) {
				System.out.println("성적범위를 벗어났습니다.");
			}
		}while(kor<0||100<kor); // 점수 범위를 벗어날 경우 false, 위의 내용 다시 반복
		exam.kor = kor;
		
		do{
			System.out.printf("영어 : ");
			eng=scan.nextInt();//점수입력
			
			if(eng<0||100<eng) {
				System.out.println("성적범위를 벗어났습니다.");
			}
		}while(eng<0||100<eng); // 점수 범위를 벗어날 경우 false, 위의 내용 다시 반복
		exam.eng = eng;
		
		do{
			System.out.printf("수학 : ");
			math=scan.nextInt();//점수입력
			
			if(math<0||100<math) {
				System.out.println("성적범위를 벗어났습니다.");
			}
		}while(math<0||100<math); // 점수 범위를 벗어날 경우 false, 위의 내용 다시 반복
		exam.math = math;
		
	}

}

바꿔본다고 바꿨는데 맞는지 모르겠다