일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 자바컨테이너
- GUI
- 자바조건문
- 백준 #백준알고리즘 #백준 Hello World #Hello World
- 화이자백신후기
- 화이자1일차
- 자바수업
- 백준10718자바
- 자바토글버튼
- 컴퓨터공부
- 백준자바 #백준10718
- 백준구구단
- 스터디
- 화이자접종후기
- 자바화면구현
- 자바컴포넌트
- 2739자바
- 백준고양이자바
- 화이자미열
- 백준고양이
- 1일1로그
- 포장방스터디
- 코로나백신
- java
- 자바
- 백준10171
- cs지식
- 백준2739
- 자바이벤트
- 자바공부
- Today
- Total
Salted Caramel
[수업 7일차] 21.08.10, method, call-by-value ,call-by-reference , 실인수, 가인수 본문
[수업 7일차] 21.08.10, method, call-by-value ,call-by-reference , 실인수, 가인수
꽃무늬라떼 2021. 8. 11. 04:09 //반환된 값이 일반 숫자가 반환이 되는 경우
public static int method1() { //(int자료형 데이터를 반환이 되게끔 하겠다.)
return 55; //(여기서 작업한 작업값을 돌려주겠다. 55.0-double 자료형)
}
// 반환되는 겂이 변수가 반환이 되는 경우
public static int method2(int su1, int su2) {
int sum = (su1 * 2) + (su2 * 2);
return sum;
}
// 반환되는 값이 수식이 반환 되는 경우
public static int method3(int num1, int num2) {
return num1 + num2;
}
//반환되는 값이 문자열이 반환이 되는 경우
public static String method4() {
return "홍길동";
}
//반환되는 값이 문자열 변수가 반환이 되는 경우
public static String method5(String str1, String str2) {
String result = str1 + str2;
return result;
}
//반환되는 값이 문자열 결합(+) 수식이 반환이 되는 경우
public static String method6(String s1, String s2) {
return s1 + s2;
}
p249
1. main 메서드가 순차적으로 진행이 되는데 add라는 메서드를 만나면
2. 제어권이 위에 있는 add로 넘어가게된다.
3. add메서드라 순차적으로 진행이 되다가 end문( } )을 만나면 메서드를 호출한 쪽으로(main 메서드 안에 있는 add();) 돌아오게 되고
4. 그 다음 문장이 진행이 된다.(System.out,println("프로그램 종료")
- 06_Class & Method-Ex01
메서드(Method)
: 메인 메서드에서 했던 내용을 기능별로 분류를해서 메인메서드에 부담을 주지않고 기능별로 분리한다.
* 메서드(method)?
* 1. C언어에서의 함수(function)와 같음.
* 2. 기능을 정의하는 단위(예 : 덧셈 기능, 뺄셈기능 등등)
* 3. 하나의 기능만을 정의하는 것이 좋음.
* 4. 자주 반복되는 내용을 정의해 놓고, 필요할 때 호출하여 사용함.
*
* 형식)
* [접근제한] 반환형 메서드이름(매개변수 혹은 인자) {
* 메서드 호출시 실행될 문장;
* }
* - 접근제한: public > protected > default > private
* (클래스, 메서드, 변수 앞에 사용됨)
* - public : 누구나 다, 아무나 접근 가능.
* - protected : 같은 패키지에서 접근 가능.
* 다른 패키지는 상속 관계만 접근 가능.
* - default : 같은 패키지에서만 접근 가능.
* 상속관계라도 접근 안됨.
* - private : 외부에서 접근 불가.
* - 반환형 : -메서드를 실행하고 특정 타입의 결과를 반환해 주겠다고 선언하는
* 것을 반환형(리턴타입)이라고 말함.
* - 메서드에서 실행된 결과값을 돌려주는 자료형으로 생략이 불가능함.
* - 해당 메서드가 어떤 동작이나 기능을 실행한 후에 결과를 알려주는 자료형.
* - 메서드를 호출한 곳으로 결과를 되돌려줄 때 사용하는 자료형.
* - 만약 결과를 되돌려줄 필요가 없는 경우에는 void라는 키워드를 작성함.
* - 반환형이 void인 경우를 제외하고 결과를 되돌려 주어야 할 때는 메서드
* 명령문 맨 마지막에 return이라는 키워드를 작성 후, 앞에서 선언한 반환형과
* 같은 자료형으로 결과를 되돌려준다.
* - 메서드 이름 : - 식별자, 소문자로 시작, 두 개의 단어가 결합된 경우에는
* 두 번째 글자의 첫 글자는 대문자로 작성하는 것이 관례임.
* - 매개변수 : - 외부에서 값을 넘겨 받는 변수, 생략 가능.
* - 메서드 호출 시 전달되는 값의 저장을 위한 용도로 사용이 됨.
* - 메서드 호출 시 전달되는 값의 자료형과 매개 변수의 자료형은
* 반드시 일치해야 함.
*
* - 메서드 실행문 : -해당 메서드가 호출된 경우에만 실행이 됨
package Method;
import java.util.Scanner;
/*
* 메서드(method)?
* 1. C언어에서의 함수(function)와 같음.
* 2. 기능을 정의하는 단위(예 : 덧셈 기능, 뺄셈기능 등등)
* 3. 하나의 기능만을 정의하는 것이 좋음.
* 4. 자주 반복되는 내용을 정의해 놓고, 필요할 때 호출하여 사용함.
*
* 형식)
* [접근제한] 반환형 메서드이름(매개변수 혹은 인자) {
* 메서드 호출시 실행될 문장;
* }
* - 접근제한: public > protected > default > private
* (클래스, 메서드, 변수 앞에 사용됨)
* - public : 누구나 다, 아무나 접근 가능.
* - protected : 같은 패키지에서 접근 가능.
* 다른 패키지는 상속 관계만 접근 가능.
* - default : 같은 패키지에서만 접근 가능.
* 상속관계라도 접근 안됨.
* - private : 외부에서 접근 불가.
* - 반환형 : -메서드를 실행하고 특정 타입의 결과를 반환해 주겠다고 선언하는
* 것을 반환형(리턴타입)이라고 말함.
* - 메서드에서 실행된 결과값을 돌려주는 자료형으로 생략이 불가능함.
* - 해당 메서드가 어떤 동작이나 기능을 실행한 후에 결과를 알려주는 자료형.
* - 메서드를 호출한 곳으로 결과를 되돌려줄 때 사용하는 자료형.
* - 만약 결과를 되돌려줄 필요가 없는 경우에는 void라는 키워드를 작성함.
* - 반환형이 void인 경우를 제외하고 결과를 되돌려 주어야 할 때는 메서드
* 명령문 맨 마지막에 return이라는 키워드를 작성 후, 앞에서 선언한 반환형과
* 같은 자료형으로 결과를 되돌려준다.
* - 메서드 이름 : - 식별자, 소문자로 시작, 두 개의 단어가 결합된 경우에는
* 두 번째 글자의 첫 글자는 대문자로 작성하는 것이 관례임.
* - 매개변수 : - 외부에서 값을 넘겨 받는 변수, 생략 가능.
* - 메서드 호출 시 전달되는 값의 저장을 위한 용도로 사용이 됨.
* - 메서드 호출 시 전달되는 값의 자료형과 매개 변수의 자료형은
* 반드시 일치해야 함.
*
* - 메서드 실행문 : -해당 메서드가 호출된 경우에만 실행이 됨
*/
public class Ex01 {
public static void add() {
System.out.println("add() 메서드 호출");
System.out.println("20 + 10 >>> " + (20 + 10));
}
public static void input() {
Scanner sc = new Scanner(System.in);
int[] arr = new int[3];
for(int i=0; i<arr.length; i++) {
System.out.print((i+1) +"번째 정수 입력 >>> ");
arr[i] = sc.nextInt();
}
for(int i=0; i<arr.length; i++) {
System.out.println("arr["+"] >>> " +arr[i]);
}
sc.close();
}
public static void main(String[] args) {
System.out.println("프로그램 시작");
//메서드를 호출해 보자.
add();
input();
System.out.println("프로그램 종료");
}
}
- 06_Class & Method-Ex02
package Method;
import java.util.Scanner;
public class Ex02 {
//속성은 없고 기능만 2가지인 메서드(total,main 메서드)
public static void total() {
Scanner sc = new Scanner(System.in);
System.out.print("정수 입력 : ");
int su = sc.nextInt();
int sum = 0; //(누적시킬 변수 필요)
for(int i=1; i<=su; i++) {
sum = sum + i;
}
System.out.println("1 ~ " +su+ " 까지의합 >>>" +sum);
sc.close(); //total() 메서드 end
}
public static void main(String[] args) {
System.out.println("프로그램 시작");
//[문제] 1부터 키보드로 입력받은 수까지의 합을
// 구하는 메서드를 호출해 보자자
total();
System.out.println("프로그램 종료");
}
}
- 06_Class & Method-Ex03
실인수 , 가인수
* 매개변수가 있는 메서드 정의
*
* 형식)
* [접근제한] 반환형 메서드이릅(type 변수1, type 변수2) {
* 메서드 호출 시 실행 문장;
* }
*
* - 실인수와 가인수
* * 실인수 : 매개변수에 전달할 실제 값 ==> 메서드를 호출할 때 사용함.
* * 가인수 : 매개변수 ==> 메서드의 정의.
* * 실인수와 가인수는 반드시 type, 순서, 갯수가 일치해야함(중요한 내용).
package Method;
import java.util.Scanner;
/*
* 매개변수가 있는 메서드 정의
*
* 형식)
* [접근제한] 반환형 메서드이릅(type 변수1, type 변수2) {
* 메서드 호출 시 실행 문장;
* }
*
* - 실인수와 가인수
* * 실인수 : 매개변수에 전달할 실제 값 ==> 메서드를 호출할 때 사용함.
* * 가인수 : 매개변수 ==> 메서드의 정의.
* * 실인수와 가인수는 반드시 type, 순서, 갯수가 일치해야함(중요한 내용).
*/
public class Ex03 {
public static void total(int kor, int eng, int mat) {
System.out.println("sum >>> " +(kor + eng + mat));
}
public static void total(int su) {
int sum = 0;
for(int i=1; i<=su; i++) {
sum += i;
}
System.out.println("1 ~ " +su+ "까지의 합 >>> " +sum);
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
total(95, 88, 92); //실인수
System.out.println("정수를 입력해 주세요. : ");
total(sc.nextInt()); //(키보드로 입력받은 실인수)
sc.close();
}
}
메서드에 넘겨줄 데이터들 = 실제 데이터(실인수)
- 타입이 일치 :정수형 => int 형
95라는 실제값이 kor 이라는 변수에 저장이 됨, 88
- 순서도 일치
- 실인수 3개니까 매개변수도 3개=> 동일한 갯수만큼 자료형을 선언해 줘야한다.
매개변수가 있는 메서드를 선언함.
지역변수 : 이 메서드 안에서만 사용이 되는 변수를 말한다.
- 방법1
- 방법2
- 06_Class & Method-Ex04
package Method;
import java.util.Scanner;
//간단한 계산기 예제
public class Ex04 {
public static void plus(int num1, int num2) {
System.out.println("덧셈>>> " +(num1 + num2));
}
public static void minus(int num1, int num2) {
System.out.println("뺄셈>>> " +(num1 - num2));
}
public static void mul(int num1, int num2) {
System.out.println("곱셈>>> " +(num1 * num2));
}
public static void divide(int num1, int num2) {
System.out.println("나눗셈(몫)>>> " +(num1 / num2));
}
public static void mod(int num1, int num2) {
System.out.println("나머지>>> " +(num1 % num2));
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// 1. 키보드로부터 두 개의 정수와 연사자를 입력을 받자.
System.out.print("첫번째 정수 입력 : ");
int su1 = sc.nextInt();
System.out.print("두번째 정수 입력 : ");
int su2 = sc.nextInt();
System.out.print("연산자(+, -, *, /, %) 중 하나를 입력하세요. :");
String op = sc.next();
// 2. 연산자 변수에 입력된 연산기호를 가지고
// 해당 기호에 맞는 메서드를 호출해 주자.
switch(op) {
case "+" :
plus(su1, su2);
break;
case "-" :
minus(su1, su2);
break;
case "*" :
mul(su1, su2);
break;
case "/" :
divide(su1, su2);
break;
case "%" :
mod(su1, su2);
break;
}
sc.close();
}
}
- 06_Class & Method-Ex05, Ex06
call-by-value
call-by-reference
* 메서드 호출 방식 - 2가지 p264
* 1. call by value
* - 값을 전달하여 호출하는 방식.
* - 매개변수가 기본자료형(int,double) 사용.
* 2. call by reference - 많이 사용하는 방식(무지무지 중요함)
* - 주소값을 전달하여 호출하는 방식.
package Method;
/*
* ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
* 메서드 호출 방식 - 2가지 p264
* 1. call by value
* - 값을 전달하여 호출하는 방식.
* - 매개변수가 기본자료형(int,double) 사용.
* 2. call by reference - 많이 사용하는 방식(무지무지 중요함)
* - 주소값을 전달하여 호출하는 방식.
* - 매개변수가 참조자료형(배열, 클래스명) 사용.
*/
public class Ex05 {
public static void call(int num) {
System.out.println("call() 메서드 호출.....");
num = 100;
}
public static void main(String[] args) {
//1. call by value 방식
int num = 200;
System.out.println("메서드 호출 전.....");
System.out.println("num >>> " + num);
call(num);
System.out.println("메서드 호출 후.....");
System.out.println("num >>> " + num);
}
}
package Method;
// 2. call by reference
public class Ex06 {
public static void change(int[] array) {
System.out.println("array >> " + array);
array[0] = 100;
array[1] = 200;
array[2] = 300;
}
public static void main(String[] args) {
int[] arr = new int[3];
arr[0] = 10; arr[1] = 20; arr[2] = 30; //방들에게 10, 20, 30을 넣음
System.out.println("change() 메서드 호출 전.....");
System.out.println(arr); //배열이름은 주소값
for(int i=0; i<arr.length; i++) {
System.out.println("arr["+i+"] >>>"+ arr[i]);
}
// int[] array =arr;
change(arr); //실제인수로 넘겨줌 arr ->array(가인수)
System.out.println("change() 메서드 호출 후.....");
for(int i=0; i<arr.length; i++) {
System.out.println("arr["+i+"] >>>"+ arr[i]);
}
}
}
*arr 이라는 배열 이름을 준다. 배열 이름을 출력 했을 때 [I@15db9742 이 출력된다. 배열 이름은 주소값으로 배열은 자료형의 크기가 정해지지않아서, heap이라는 메모리 공간에 만들어진다. 시작 주소값은 배열이름이 가지고 있다. (C언어에서 point와같은 개념이다.)
arr 에서 가게 되면 시작 주소값으로 갔을 때 세개의 연속의 메모리 공간이 잡혀져 있는데 각각의 방의 이름이 arr[1], arr[2], arr[3]이라고 하고 각 방에 10, 20, 30을 집어 넣었을 때, 배열에 주소값을 실제 인수로 change(arr)로 넘겨줌. 이것을 받는 가인수는 array이다. 값이 저장된다.
=> int[] array =arr;
=> array라는 변수에 arr 배열의 주소값을 지정하는 것과 똑같은 개념
주소값을 매개변수로 받아서
똑같은 주소값을 복사하고 복사된 값을 가지고 데이터 변경이 일어난다.
(주소값가지고 이동이 됨
주소값을 복사하고 복사한 값을 가지고 데이터 변경이 일어남 => 참조주소값이 이동)
*참조 주소값을 인자로 넘기고 매개변수에서는 그 참조 주소값을 받아서 처리하는 것
같은 인덱스 => 값이 바뀌면 전체적으로 바뀜(같은 주소값을 가지고 있기 때문이다.)
*new 라고 하면 heap 영역에 만들어짐.
Stack 영역에 arr 배열의 시작 주소값을 가지고 있음,
배열이름만 다를 뿐이지 같은 인덱스, 같은 주소값이다.
- 06_Class & Method-Ex07
메서드 호출시 반환형
: 메서드 호출하고 호출한 것에 대해서 결과값을 돌려받는 것
package Method;
//매서드 호출시 반환형
public class Ex07 {
//반환된 값이 일반 숫자가 반환이 되는 경우
public static int method1() { //(int자료형 데이터를 반환이 되게끔 하겠다.)
return 55; //(여기서 작업한 작업값을 돌려주겠다. 55.0-double 자료형)
}
// 반환되는 겂이 변수가 반환이 되는 경우
public static int method2(int su1, int su2) {
int sum = (su1 * 2) + (su2 * 2);
return sum;
}
// 반환되는 값이 수식이 반환 되는 경우
public static int method3(int num1, int num2) {
return num1 + num2;
}
//반환되는 값이 문자열이 반환이 되는 경우
public static String method4() {
return "홍길동";
}
//반환되는 값이 문자열 변수가 반환이 되는 경우
public static String method5(String str1, String str2) {
String result = str1 + str2;
return result;
}
//반환되는 값이 문자열 결합(+) 수식이 반환이 되는 경우
public static String method6(String s1, String s2) {
return s1 + s2;
}
public static void main(String[] args) { //(값을 돌려줄 필요가 없으면 void)
//int su = method1(); //(메서드에 대한 실행값을 받는..?)
System.out.println
("method1() 메서드 호출 후 반환된 값 >>> " + method1());
System.out.println
("method2() 메서드 호출 후 반환된 값 >>> " + method2(145, 200));
System.out.println
("method3() 메서드 호출 후 반환된 값 >>> " + method3(145, 200));
System.out.println
("method4() 메서드 호출 후 반환된 값 >>> " + method4());
System.out.println
("method5() 메서드 호출 후 반환된 값 >>> " + method5("대한", "민국"));
System.out.println
("method6() 메서드 호출 후 반환된 값 >>> " + method6("이", "순신"));
}
}//(메서드를 호출하고 결과 값을 돌려 받는 과정 반환형)
메서드를 호출한 쪽으로 돌려준다.메서드를 선언했을때의 반환형과 같은 쪽으로 메서드를 호출하게끔한다.
- 06_Class & Method-Ex08
package Method;
import java.util.Scanner;
// 성적 처리를 메서드를 이용하여 진행해 보자.
public class Ex08 {
public static int total(int k, int e, int m) {
return k + e + m; //(변수는 4바이트의 메모리를 잡아먹어서 수식으로 받기)
}
//평균을 구하는 메서드
public static double average(int tot) {
return tot / 3.0 ;
}
// 학점을 구하는 메서드
public static String hakjum (double avg) {
String grade = ""; //String grade = null;
if(avg >= 90) {
grade = "A학점";
}else if(avg >= 80) {
grade = " B학점";
}else if(avg >= 70) {
grade = " C학점";
}else if(avg >= 60) {
grade = " D학점";
}else {
grade = "F학점";
}
return grade;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// 1. 키보드로 이름, 국어점수, 영어점수, 수학점수를
// 입력을 받자.
System.out.print("이름을 입력하세요. : ");
String name = sc.next();
System.out.print("국어 점수 입력 : ");
int kor = sc.nextInt();
System.out.print("영어 점수 입력 : ");
int eng = sc.nextInt();
System.out.print("수학 점수 입력 : ");
int mat = sc.nextInt();
// 2. 총점을 구하자. ==> 총점 메서드를 호출
int sum = total(kor, eng, mat); //(입력된 값이 실제 값으로 되야한다, 3변수의 값이 sum변수에)
// 3. 평균을 구하자. ==> 평균 메서드를 호출
double avg = average(sum); // (평균 구할 때 실인수로 넘김)
// 4. 학점을 구하자. ==> 학점 메서드를 호출
String grade = hakjum(avg);
// 5. 화면에 성적을 출력해 보자.
System.out.println("이 름 : " +name);
System.out.println("국어점수 : " + kor + "점" );
System.out.println("영어점수 : " + eng + "점" );
System.out.println("수학점수 : " + mat + "점" );
System.out.println("총 점 : " + sum + "점" );
System.out.printf("평 균 : %.2f점\n", avg );
System.out.println("학 점 : " + grade);
//해당 메서드에서 반환형으로 처리해준 경우
}
}
- 06_Class & Method-Ex09
package Method;
import java.util.Scanner;
public class Ex09 {
// 2과목의 총점을 구하는 메서드
public static int sum2(int k, int e) {
return k + e;
}
// 3과목의 총점을 구하는 메서드
public static int sum3(int k, int e, int m) {
return k + e + m;
}
// 4과목의 총점을 구하는 메서드
public static int sum4(int k, int e, int m, int j) {
return k + e + m + j;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("국어 점수 입력 : ");
int kor = sc.nextInt();
System.out.print("영어 점수 입력 : ");
int eng = sc.nextInt();
System.out.print("수학 점수 입력 : ");
int mat = sc.nextInt();
System.out.print("자바 점수 입력 : ");
int java = sc.nextInt();
System.out.println("2과목 총점 >>> " + sum2(kor,eng));
System.out.println("3과목 총점 >>> " + sum3(kor,eng, mat));
System.out.println("4과목 총점 >>> " + sum4(kor,eng, mat, java));
sc.close();
}
}
- 06_Class & Method-Ex10
p283
* 메서드 다중정의(method overloading)
* - 동일한 클래스에서 동일한 이름의 메서드가 여러 개 정의되는 자바문법.
* - 일관된 이름을 정의할 수 있어서 개발자(사용자)에게 코드의 직관성을 제공해 줌.
*
* [메서드 다중정의 규칙]
* 1. 메서드 이름이 동일해야함.
* 2. 반드시 갯수가 같은 경우 매개변수는 자료형이 다르거나
* 또는 매개변수의 갯수가 달라야 함.
* 3. 리턴타입(반환형)은 무관함.
동일한 클래스의 이름의 메서드가 여러개 정의 되면 어디로 가야할지 알 수가 없기 때문에 정의해 줘야한다.
반드시 갯수가 같은 경우 매개변수는 자료형이 다르거나 매개 변수의 갯수가 달라야함.
package Method;
import java.util.Scanner;
/*
* 메서드 다중정의(method overloading)
* - 동일한 클래스에서 동일한 이름의 메서드가 여러 개 정의되는 자바문법.
* - 일관된 이름을 정의할 수 있어서 개발자(사용자)에게 코드의 직관성을 제공해 줌.
*
* [메서드 다중정의 규칙]
* 1. 메서드 이름이 동일해야함.
* 2. 반드시 갯수가 같은 경우 매개변수는 자료형이 다르거나
* 또는 매개변수의 갯수가 달라야 함.
* 3. 리턴타입(반환형)은 무관함.
*/
public class Ex10 {
// 2과목의 총점을 구하는 메서드
public static int sum(int k, int e) {
return k + e;
}
// 3과목의 총점을 구하는 메서드
public static int sum(int k, int e, int m) {
return k + e + m;
}
// 4과목의 총점을 구하는 메서드
public static int sum(int k, int e, int m, int j) {
return k + e + m + j;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("국어 점수 입력 : ");
int kor = sc.nextInt();
System.out.print("영어 점수 입력 : ");
int eng = sc.nextInt();
System.out.print("수학 점수 입력 : ");
int mat = sc.nextInt();
System.out.print("자바 점수 입력 : ");
int java = sc.nextInt();
System.out.println("2과목 총점 >>> " + sum(kor,eng));
System.out.println("3과목 총점 >>> " + sum(kor,eng, mat));
System.out.println("4과목 총점 >>> " + sum(kor,eng, mat, java));
sc.close();
}
}
- 06_Class & Method-Ex11
package Method;
import java.util.Scanner;
//[문제] 개인별 성적 처리 - 무한반복
public class Ex11 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
//for문 무한반복 : for(;;) { }
while(true) { //무한반복
//키보드로 이름, 국어, 영어, 수학 점수를 입력을 받자.
System.out.print("이름 입력 : ");
String name = sc.next();
System.out.print("국어 점수 입력 : ");
int kor = sc.nextInt();
System.out.print("영어 점수 입력 : ");
int eng = sc.nextInt();
System.out.print("수학 점수 입력 : ");
int mat = sc.nextInt();
System.out.println();
// 총점을 구하자.
int sum = kor + eng + mat;
//평균을 구하자.
double avg = sum / 3.0;
//학점을 구하자.
String grade = "";
if(avg >= 90) {
grade = "A학점";
}else if (avg >= 80) {
grade = "B학점";
}else if (avg >= 70) {
grade = "C학점";
}else if (avg >= 60) {
grade = "D학점";
}else {
grade ="F학점";
}
//성적을 화면에 출력해 보자.
System.out.println("이 름 : " +name);
System.out.println("국어점수 : " +kor + "점");
System.out.println("영어점수 : " +eng + "점");
System.out.println("수학점수 : " +mat + "점");
System.out.println("총 점: " +sum + "점");
System.out.printf("평 균 : %.2f점\n", "점");
System.out.println("학 점 : " + grade);
System.out.println(":::::::::::::::::::::::::::::");
System.out.println();
//계속 진행할지 종료 할지 여부를 선택하자.
System.out.print("계속할까요?(Y:계속 / N:종료");
String result = sc.next();
//equalsIgnoreCase() : 대소문자를 구분하지 않는 메서드
if(result.equalsIgnoreCase("N")) {
break;
}
}//while 문 end
System.out.println("수고 하셨습니다.");
sc.close();
}
}
equals( );
: 대소문자를 구분한다.
equalsIgnoreCase( );
: 대소문자 구분하지 않습니다.
ex) y, Y 다 동일하게 받는다.
'coding > [2021.08.02~2022.01.24] 수업복습' 카테고리의 다른 글
[수업 9일차] 21.08.12, 객체배열, 캡슐화 (0) | 2021.08.12 |
---|---|
[수업 8일차] 21.08.11, 객체(Object), 클래스(Class) (0) | 2021.08.11 |
[수업 6일차] 21.08.09, Exam01, Exam02, Exam03, method (0) | 2021.08.10 |
[수업 5일차] 2021.08.06, 배열, 보조제어문, 가변배열 (0) | 2021.08.06 |
[수업 4일차] 2021.08.05/ Scanner, 반복문(for,while,...),숫자맞추기게임 (0) | 2021.08.05 |