본문 바로가기
Java/Java

국비지원 자바 3(타입변환, 제어 문, 성적프로그램)

by code2772 2022. 10. 4.

[ 목차 ]

    728x90
    반응형

     

    1. 타입 변환

    - 연산은 기본적으로 같은 타입의 피연산자와 수행

    - 서로 다른 타입의 피연산자가 있을경우 두 피연산자 중 크기다 큰 타입으로 자동변환

    EX) 10 / 3.0 = 3.3333... 실수형이 정수형보다 크기(소수)가 크기 때문이다.

    정수 < 실수 < 문자열 // 같은 크기일 경우

    - 강제 타입 변환

    EX) int -> byte, (byte)변수명

    ✔ Scanner 클래스 -> 조건/제어문 들어가기 전에 미리 알아보자

    - 자바에서 여러가지 데이터를 입력받을 수 있도록 도와주는 대표적인 입력관련 클래스

    - java.util 패키지(폴더별로 나누어 둔것이라고 생각하자)에 존재

    변수 -> Stack에 저장

    데이터타입 변수이름 = 값;

    int num = 10;

    객체 -> new가 나오면 Heap에 저장

    클래스이름 변수이름 = new 생성자명(); // 생성자: 클래스 이름과 동일한 함수 이름

    // 클래스안에 변수나 많은것이 있다. 이 때 new를 사용하고 가장 먼저 사용하는 함수를 생성자라고 한다.

    // 메모리에 올라갈 시 가장 먼저 실행되는 것을 동일한 클래스명(생성자)으로 정의한다.

    //()에 들어가는 것은 실행되기를 원하는것을 기입한다.

    Scnner sc = new Scanner(System.in); //sc는 참조변수 - 힙에 있는 주소를 저장

    //sc라는 이름으로 heap에 저장된 Scanner를 사용하며, 리모콘 역할을 한다.

    //class에 있는 파일이며 new는 생성하라는 의미이다.

    2. 제어문

    - 프로그램의 흐름을 제어하는 문장 - 특종 패턴에 의해서 원하는 값을 만들 수 있다.

    - 조건문

    1. if문

    2. switch문

     

    - 반복문

    1. while문

    2. for문

    if문 - 뒤에 세미콜론을 사용할 경우 조건이 아닌 그저 실행되기 때문에 세미콜론 사용X

    * if(조건식) 조건식의 결과가 true인 경우 실행할 문장;

    * if(조건식) {

    조건식의 결과가 true인 경우 실행할 문장;

    ...

    }

    if ~ else문

    * if(조건식) 조건식의 결과가 true인 경우 실행할 문장;

    else 조건식의 결과가 false인 뎡우 실행할 문장;

    * if(조건식) {

    조건식의 결과가 true인 경우 실행할 문장;

    ...

    }else{

    조건식의 결과가 false인 경우 실행할 문장;

    ...

    }

    if else if문

    * if(조건식) { // 이 부분이 참일경우 위 문장을 빠저나온다. (if문 밖)

    조건식의 결과가 true인 경우 실행할 문장;

    ...

    }else if(조건식2){

    조건식2의 결과가 true인 경우 실행할 문장;

    ...

    }else{

    조건식의 결과가 모두 false인 경우 실행할 문장;

    }

     

    ✔ String 클래스 -> 변수로 오해하는 경우가 多 변수가 아닌 클래스이다.

    String str = new String("자바");//Heap

    ==  String str = "자바"; //리터럴 표기법

    int num = 10; //Stack

    == (같다. stack)

    int num1 = 10

    int num2 = 10

    if(num1 == num2) System.out.println("같다!"); // 주소비교이다.

    //오류없이 출력 왜냐하면 스택에 저장한 변수를 이용하였기 때문이다.

    String str = "자바";

    if(str == "자바") System.out.println("같다!"); // X

    //오류발생 Heap에 저장한 클래스를 비교하였으며 str(주소값) "자바"(문자)는 엄연히 다르다.

    // heap에 있는 클래스는 비교연산은 불가능하다 이를 해결하기 위해 비교 함수가 존재한다.

    if(str.equals("자바"))System.out.println("같다!"); // O - equals함수 사용하여 판별

    //object : 자바 프로그램을 사용하면서 많은 기능들을 가지고있어 내가 만들지 않아도 상속. 신과같다.

    String str1 = "자바";

    String str2 = str1; // 위 아래 전부 주소값으로 변환된다.

    문제 성적 프로그램

    1. 3과목 변수를 만들어 값을 입력(Scanner)

    2. 위 점수를 변수에 저장하고 총점과 평균, 학점을 구함

    (단, 학점은 평균을 기준으로 90점 이상은 A,80점 이상은 B,70 점 이상은 C 60점 이상은 D학점 나머지는 F)

    switch문

    - if문과 비슷하지만 좀 더 정형화된 형태

    - 특정 값과 일치하는 값을 찾아 실행

    switch(변수) {

    case 값1:

    값1과 변수가 같을 경우 실행할 문장;

    break; //break가 없으면 계속 밑으로 내려간다.

    case 값2:

    값2과 변수가 같을 경우 실행할 문장;

    break;

    ......

    default:

    값이 변수와 모두 다를 경우 실행할 문장;

    ........

    }

    과제. 성적 프로그램

    (조건)

    1. 3과목 변수를 만들어 값을 입력(Scanner)

    2. 위 점수를 변수에 저장하고 총점과 평균, 학점을 구함

    (단, 학점은 평균을 기준으로 90점 이상은 A,80점 이상은 B,70 점 이상은 C 60점 이상은 D학점 나머지는 F)

    3. Switch 문으로

     

    ​나는 처음 성적 A인 100점을 생각하지 않도 90 ~ 99 점 까지만 생각하여 case 9만 사용했었다.

    반응형