[Java] chapter_01 ~ 03

DEVELOPERS_Ivan ㅣ 2023. 9. 18. 12:02

프로젝트 클래스 생성하기

- HelloWorld

단축키 알아보기

- main 메서드 단축키 생성하기
- 출력하기 단축키

단축키 : maim 입력하면 자동 생성됨
sout : 시스템 출력 단축키
결과 실행 단축키 :  ctrl + Shift + F10 


01_Alonejava

- 프로젝트 생성하기

Gradle / Groovy 로 설정
설정대로 빌드중... / 전형적인 폴더 구조 생성

환경 설정(추가)

- 자동주석 넣기
더보기
/** 
* packageName : ${PACKAGE_NAME} 
* fileName : ${NAME} 
* author : ${USER} 
* date : ${DATE} 
* description : 
* 요약 :
*
* =========================================================== 
* DATE            AUTHOR             NOTE 
* ————————————————————————————— 
* ${DATE}         ${USER}          최초 생성 */

패키지 생성
클래스 생성하면 자동 주석 생성됨

chap01./ Sec0101 객체지향 코딩 : 객체 생성해서 함수/변수 호출하는 코딩

- 실행 클래스( main 함수가 있는 클래스 : 실행 클래스 ) : JavaApplication
- 클래스(객체 정의) : 변수 / 함수가 있는 파일(업무 로직이 들어 있는 클래스)): Sec0101

* 클래스 제 3 요소
- 속성(멤버 변수)
- 생성자 함수
- 함수(멤버 메소드)
더보기
import chap01.Sec0101;

/**
 * packageName : PACKAGE_NAME
 * fileName : JavaApplication
 * author : GGG
 * date : 2023-09-18
 * description :    실행 클래스
 * 요약 :
 * <p>
 * ===========================================================
 * DATE            AUTHOR             NOTE
 * —————————————————————————————
 * 2023-09-18         GGG          최초 생성
 */
public class JavaApplication {
//  메인 클래스 단축키 : main
    public static void main(String[] args) {
////      TODO: 객체지향 코딩 : 객체 생성해서 함수/변수 호출하는 코딩
////      TODO: 객체 생성
////      사용법 : 클래스명 객체변수 = new 생성자함수();
//        Sec0101 sec0101 = new Sec0101();
////      클래스명 객체변수 불러온다.
//        sec0101.exam01();   // Hello World
////       예제1)
//        sec0101.exam02();   // 3
    } // end of main
}   // end of class
더보기
package chap01;

/**
 * packageName : chap01
 * fileName : Sec0101
 * author : GGG
 * date : 2023-09-18
 * description :    업무 로직 클래스
 * 요약 :
 *          환경 설정 : JavaApplication ( main 함수가 있는 클래스 : 실행 클래스 )
 *                     클래스 ( 객체 정의 ) : 변수 / 함수가 있는 파일(업무 로직이 들어 있는 클래스)
 *                     툴 : 1) 파일 인코딩 ( UTF-8 )
 *                          2) 도움말 ( Help ) - 사용자 지정 VM 옵션
 *                           - Dfile.encoding=UTF-8
 *                           - Dconsole.encoding=UTF-8
 *                          3) 설정 - 플러그인 - 마켓플레이스
 *                           1) Atom Material Icons
 *                           2) Korean Language Pack
 *                           3) Rainbow Brackets
 *                           4) Presentation ASSistant (생략 가능)
 * <p>
 * ===========================================================
 * DATE            AUTHOR             NOTE
 * —————————————————————————————
 * 2023-09-18         GGG          최초 생성
 */
public class Sec0101 {
    /**
     * Hello world 출력
     *
     */
    public void exam01() {
//      출력 단축키 : sout
        System.out.println( "Hello World" );
    }
    public void exam02() {
//       예제1) x, y 정수 변수를 만들어서 덧셈결과를 화면에 출력하세요.
//         입력 : x=1, y=2
        int x=1, y=2;
        int result = x + y;
        System.out.println( result );
    }
}

업무 로직 클래스 / 실행 클래스


chap02./  Sec0201 변수 선언, 변수 연산(값 바꾸기 swap 코딩), 변수의 허용 범위

- 변수 연산
- 값 바꾸기 swap 코딩

- 변수 : 값을 저장할 수 있는 메모리 공간
- 변수 사용 범위 : { } 안에서만 사용 가능
만약에 {} 안에 {} 있다면 변수는 안에 { } 도 사용 가능함
더보기
import chap02.Sec0201;

/**
 * packageName : PACKAGE_NAME
 * fileName : JavaApplication
 * author : GGG
 * date : 2023-09-18
 * description :    실행 클래스
 * 요약 :
 * <p>
 * ===========================================================
 * DATE            AUTHOR             NOTE
 * —————————————————————————————
 * 2023-09-18         GGG          최초 생성
 */
public class JavaApplication {
////      TODO: 변수 선언, 변수 연산(값 바꾸기 swap 코딩), 변수의 허용 범위
//        Sec0201 sec0201 = new Sec0201();
//        sec0201.exam01();
//        sec0201.exam02();

    } // end of main
}   // end of class
더보기
package chap02;

/**
 * packageName : chap02
 * fileName : Sec0201
 * author : GGG
 * date : 2023-09-18
 * description :
 *               변수          : 값을 저장할 수 있는 메모리 공간
 *               변수 사용 범위 : {} 안에서만 사용 가능
 *                  만약에 {} 안에 {} 있다면 변수는 안에 {} 도 사용 가능함
 * 요약 :
 * <p>
 * ===========================================================
 * DATE            AUTHOR             NOTE
 * —————————————————————————————
 * 2023-09-18         GGG          최초 생성
 */
    public class Sec0201 {
    public void exam01() {
//        변수 선언
        int value = 20;

//        변수 연산
//        예제2) 변수 value 에 값을 10 더하는 연산을 한 후 화면에 출력하세요
        int result = value + 10;
//        결과 출력 : sout
        System.out.println( result );
    }
    public void exam02() {
//        예제3) x=3, y= 5 가 있습니다.  x와 y 값을 바꾸어서 출력하세요.
//        결과 출력은 아래와 같이 출력하세요.
//        결과 : x = 5 , y = 3
//        변수의 값을 바꾸기 : swap 코딩 (임시 변수 1개 필요함)
        int x = 3;
        int y = 5;

//        swap 코딩
        int temp =  x; // x의 값을 임시변수에 넣어둠
        x = y;     // x의 값이 overwrite 됨
        y = temp;  // 임시변수 값을 y에 넣음
//        결과 출력 : sout
        System.out.println( "x:" + x + ", y:" + y );
    }

    /**
     * 변수의 허용 범위 예제
     */
    public void exam04() {
        int v1 = 15;
        if( v1 > 10 ) {
            int v2;
            v2 = v1 - 10;
        }
//        int v3 = v1 + v2 + 5; // v2 변수 사용불가라서 에러가 발생함
    }

}
chap02./  Sec0202 기본 자료형(Type)

- 정수 : byte(1), short(2), int(4), long(8)
- char : 2byte 자료형 문자 1개를 의미, 홑따옴표('') 표시
- (저장시 유니코드(숫자)로 저장되고 출력 시는 문자로 출력됨)
- string(***) : 쌍따옴표("") 로 감싼 문자열을 의미
- 실수 : float(4), double(8, ***)
- boolean : 참/거짓 자료형, true/false

- 진수 사용법
- 1bit : 최소 단위, 8bit : 1byte,
- 1024byte = 1KB1024KB = 1MB, 1024MB = 1GB, 1024GB = 1TB, 1024TB = 1HB

- 2진수 표현 : 0b 붙이면 2진수(0, 1 로 표현하는 수)

- 2진수(0b 붙이면)
- 8진수(0 붙이면 8진수)
- 10진수
- 16진수(0x 붙이면 16진수)

* 특수기호 : /n, /t, ", \(이스케이프문자)
* e : 지수 표현식
더보기
import chap02.Sec0202;

/**
 * packageName : PACKAGE_NAME
 * fileName : JavaApplication
 * author : GGG
 * date : 2023-09-18
 * description :    실행 클래스
 * 요약 :
 * <p>
 * ===========================================================
 * DATE            AUTHOR             NOTE
 * —————————————————————————————
 * 2023-09-18         GGG          최초 생성
 */
public class JavaApplication {
//  메인 클래스 단축키 : main
    public static void main(String[] args) {
////      TODO: 기본 자료형(Type)
//        Sec0202 sec0202 = new Sec0202();
//        sec0202.exam01();
//        System.out.println("======================");
//        sec0202.exam02();
//        System.out.println("======================");
//        sec0202.exam03();
//        System.out.println("======================");
//        sec0202.exam04();
//        System.out.println("======================");
//        sec0202.exam05();

    } // end of main
}   // end of class
package chap02;

/**
 * packageName : chap02
 * fileName : Sec0202
 * author : GGG
 * date : 2023-09-18
 * description : 기본 자료형(Type)
 * 요약 :
 *       정수 : byte(1), short(2), int(4), long(8)
 *       char : 2byte 자료형 문자 1개를 의미, 홑따옴표('') 표시
 *       (저장시 유니코드(숫자)로 저장되고 출력 시는 문자로 출력됨)
 *       string(***) : 쌍따옴표("") 로 감싼 문자열을 의미
 *       실수 : float(4), double(8, ***)
 *       boolean : 참/거짓 자료형, true/false
 * <p>
 * ===========================================================
 * DATE            AUTHOR             NOTE
 * —————————————————————————————
 * 2023-09-18         GGG          최초 생성
 */
public class Sec0202 {
    public void exam01() {
//          1bit : 최소 단위, 8bit : 1byte, 1024byte = 1KB
//          1024KB = 1MB, 1024MB = 1GB, 1024GB = 1TB, 1024TB = 1HB
//          2진수 표현 : 0b 붙이면 2진수(0, 1 로 표현하는 수)
        int var1 = 0b1011;  // 2진수(0b 붙이면)
        int var2 = 0206;    // 8진수(0 붙이면 8진수)
        int var3 = 365;     // 10진수
        int var4 = 0xB3;    // 16진수(0x 붙이면 16진수)
//  결과 : sout, 줄복사 : ctrl + d
        System.out.println("var1 : " + var1);   // 11
        System.out.println("var2 : " + var2);   // 134
        System.out.println("var3 : " + var3);   // 365
        System.out.println("var4 : " + var4);   // 179
    }

    public void exam02() {
        long var1 = 10;      // 정수 8byte
        long var2 = 20L;     // L 붙여면 long 자료형
//      결과 출력
        System.out.println(var1);   // 10
        System.out.println(var2);   // 20
    }

    public void exam03() {
//        아스키 코드
        char c1 = 'A';
        char c2 = 65;
//      결과 출력
        System.out.println(c1); // 문자를 직접 저장
        System.out.println(c2); // 십진수 저장 => 'A'
    }

    public void exam04() {
        String name = "홍길동";
        String job = "프로그래머";
//      결과 출력
        System.out.println(name);   // 홍길동
        System.out.println(job);   // 프로그래머
    }

    /**
     * 특수기호 : /n, /t, ", \(이스케이프문자)
     */
    public void exam05() {
        System.out.println("번호\t이름\t직업");   // 탭문자 // 번호	이름	직업
        System.out.println("행 단위 출력\n");   // 줄바꿈 문자    // 행 단위 출력(다음 행 띄움)
        System.out.println("우리는\"개발자\" 입니다.");   // \" 사용 // 우리는"개발자" 입니다.
        System.out.println("봄\\여름\\가을\\겨울");   // \\ 사용 // 봄\여름\가을\겨울
        /**
         * 실수 : float(4),  double(8, ***)
         */
        float var2 = 3.14f; // float 사용시 끝에 f 붙임
        double var3 = 3.14; // double
//      결과 출력
        System.out.println(var2);   // 3.14
        System.out.println(var3);   // 3.14
        /**
         * e : 지수 표현식
         */
        double var6 = 3e6;
        double var7 = 2e-3;
//      결과 출력
        System.out.println(var6);   // 3000000.0
        System.out.println(var7);   // 0.002
    }
}
chap02./  Sec0203 자료형 변환

- 자동 자료형 변환
- 실수 자동 형변환

- 강제 형변환
- 아스키 코드(숫자) 변환 : 아스키코드(숫자) -> 문자로 변환
- 문자열 + 숫자 = 문자열
- 결합 연산 : 우선 순위 연산으로 결과 값이 상이할 수 있음
- 문자열 -> int 자료형 변경 : Integer.parseInt("값")
- int -> 문자열 변경
- 문자열 -> int 자료형 변경
- int -> 문자열 변경 :
더보기
import chap02.Sec0203;

/**
 * packageName : PACKAGE_NAME
 * fileName : JavaApplication
 * author : GGG
 * date : 2023-09-18
 * description :    실행 클래스
 * 요약 :
 * <p>
 * ===========================================================
 * DATE            AUTHOR             NOTE
 * —————————————————————————————
 * 2023-09-18         GGG          최초 생성
 */
public class JavaApplication {
//  메인 클래스 단축키 : main
    public static void main(String[] args) {
////      TODO: 자료형 변환
//        Sec0203 sec0203 = new Sec0203();
//        sec0203.exam01();

    } // end of main
}   // end of class
더보기
package chap02;

/**
 * packageName : chap02
 * fileName : Sec0203
 * author : GGG
 * date : 2023-09-18
 * description : 자료형 변환
 *
 * 요약 :
 *       자동 타입 변환 : 자동으로 자료형이 변환되는 것 : 작은(byte) 자료형 -> 큰 자료형
 *       강제 타입 변환 : 강제로 자료형 변환 : 사용법 : (자료형)변수명, 큰자료형- > 작은자료형
 * <p>
 * ===========================================================
 * DATE            AUTHOR             NOTE
 * —————————————————————————————
 * 2023-09-18         GGG          최초 생성
 */
public class Sec0203 {
    public void exam01() {
        byte byteValue = 10; // 1byte 정수형
//      TODO: 자동 자료형 변환 : int(4byte)
        int intValue = byteValue;
//      결과 출력 : sout, 줄복사 : ctrl + d
        System.out.println("intValue : " + intValue); //  intValue : 10

//      TODO: 실수 자동 형변환 : double(8byte) <- float(4byte)
        float floatValue = 100.5F;
        double doubleValue = floatValue;
//      결과 출력
        System.out.println("doubleValue : " + doubleValue); //  doubleValue : 100.5
    }

    /**
     * TODO: 강제 형변환 예제
     * 참고) 아스키 코드 변환 : char 변수 <- int 값 : 아스키코드 -> 문자로 변환
     * int 값 <- char     : 아스키코드 변환 <- 문자
     */
    public void exam02() {
        //  TODO: 아스키 코드(숫자) 변환 : 아스키코드(숫자) -> 문자로 변환
        char alpha = 65;
        int beta = 'A';
//      결과 출력
        System.out.println(alpha);  // A
        System.out.println(beta);  // 65

        int intValue = 44032; // int(4byte), char(2byte)
        char charValue = (char) intValue; // 강제 형변환
//      결과 출력
        System.out.println(charValue);  // 가

//      double(8) -> int(4) 강제 형변환
        double doubleValue = 3.14;
        int intValut2 = (int) doubleValue;
        System.out.println(intValut2);  // 3
    }
    /**
     * TODO: 문자열 + 숫자 = 문자열
     */
    public void exam03() {
//     TODO: 결합 연산 : 우선 순위 연산으로 결과 값이 상이할 수 있음
        String str1 = 10 + 2 + "8";
        System.out.println(str1);   // 128

        String str2 = 10 + "2" + 8;
        System.out.println(str2);   // 1028

        String str3 = "10" + (2 + 8);
        System.out.println(str3);   // 1010
    }
    /**
    * TODO: 문자열 -> int 자료형 변경 : Integer.parseInt("값")
    * TODO: int -> 문자열 변경 :
    */
    public void exam04() {
//      TODO: 문자열 -> int 자료형 변경
        int value1 = Integer.parseInt("10");          // 문자열 -> 정수
        double value2 = Double.parseDouble("3.14");   // 문자열 -> 실수
        boolean value3 = Boolean.parseBoolean("true");// 문자열 -> 참/거짓

        System.out.println(value1);
        System.out.println(value2);
        System.out.println(value3);

//      TODO: int -> 문자열 변경 :
        String str1 = String.valueOf(10); // 속도 빠름
        String str2 = "" + 10;
        String str3 = String.valueOf(3.14);
        String str4 = String.valueOf(true);

        System.out.println(str1);
        System.out.println(str2);
        System.out.println(str3);
        System.out.println(str4);
    }
}
chap02./  Sec0204 키보드 입력 

- System.out.println() : 화면에 출력하고 줄바꿈 함수
- System.out.print() : 화면에 출력하는 함수
- System.out.printf("%d %s %f",정수변수, 문자열변수, 실수변수)
- Scanner : 콘솔 입력을 받기 위한 클래스(객체 정의) - 한라인 입력 받기 함수 : .nextLine();
- 공백까지 입력 받기 함수 : .next()
- 참고) nextInt(), nextDouble() 등

- 입력 받기 : System.in (키보드 입력)
- 입력된 문자열이 q 가 들어오면 반복문 종료하게 코딩
- 비교 연산자 사용 .equals
- 문자열.equals("문자열2") : 같으면 true, 아니면 false
- break;
더보기
import chap02.Sec0204;

/**
 * packageName : PACKAGE_NAME
 * fileName : JavaApplication
 * author : GGG
 * date : 2023-09-18
 * description :    실행 클래스
 * 요약 :
 * <p>
 * ===========================================================
 * DATE            AUTHOR             NOTE
 * —————————————————————————————
 * 2023-09-18         GGG          최초 생성
 */
public class JavaApplication {
//  메인 클래스 단축키 : main
    public static void main(String[] args) {
////      TODO: 키보드 입력 (System.in)
//        Sec0204 sec0204 = new Sec0204();
//        sec0204.exam01();

    } // end of main
}   // end of class

 

더보기
package chap02;

import java.util.Scanner;

/**
 * packageName : chap02
 * fileName : Sec0204
 * author : GGG
 * date : 2023-09-18
 * description :
 * 요약 : sout
 *      System.out.println() : 화면에 출력하고 줄바꿈 함수
 *      System.out.print() : 화면에 출력하는 함수
 *      System.out.printf("%d %s %f",정수변수, 문자열변수, 실수변수)
 *      Scanner : 콘솔 입력을 받기 위한 클래스(객체 정의)
 *                한라인 입력 받기 함수   : .nextLine();
 *                공백까지 입력 받기 함수 : .next()
 *                참고) nextInt(), nextDouble() 등
 * <p>
 * ===========================================================
 * DATE            AUTHOR             NOTE
 * —————————————————————————————
 * 2023-09-18         GGG          최초 생성
 */
public class Sec0204 {
    public void exam01() {
//      TODO: 입력 받기 : System.in (키보드 입력)
        Scanner scanner = new Scanner(System.in);
        String inputData;   // 입력 문자열
        while (true) {
            inputData = scanner.nextLine(); // 1라인 입력받기
            System.out.println("입력된 문자열: " + inputData);
//          TODO: 코드를 완성하세요.
//           ( 입력된 문자열이 q 가 들어오면 반복문 종료하게 코딩하세요 )
//          TODO:  ※비교 연산자 사용 .equals
//                 문자열.equals("문자열2") : 같으면 true, 아니면 false
            if (inputData.equals("q") == true) {
                System.out.println(" 종료 ");
                break;
            }
        }
    }

}

chap03./ Sec0301 연산자 

- 산술 : +, -, *, /, %(나머지 연산자)
   * / 나눗셈 개선 코딩 : 강제 형변환 후 계산해야함
- 부호 : +, -
- 문자열 붙이기 : +
- 대입 : =, +=, -=, /=, %=
- 증감 : ++, --
- 비교 : ==, !=, >, <, >=, <=(1문자 비교, 숫자비교), instanaceof
- ※ 문자열 비교 : 문자열.equals(문자열2)
- 논리 : !(not), &, |,(비트연산자), &&,(논리곱) ||(논리합)
- 삼항 : (조건식)? A : B
- 우선순위 필요하면 () 쓸 것 : () 최고 우선순위
더보기
import chap03.Sec0301;

/**
 * packageName : PACKAGE_NAME
 * fileName : JavaApplication
 * author : GGG
 * date : 2023-09-18
 * description :    실행 클래스
 * 요약 :
 * <p>
 * ===========================================================
 * DATE            AUTHOR             NOTE
 * —————————————————————————————
 * 2023-09-18         GGG          최초 생성
 */
public class JavaApplication {
////      TODO: 연산자
//        Sec0301 sec0301 = new Sec0301();
//        sec0301.exam01();
//        sec0301.exam02();
//        sec0301.exam03();
//        sec0301.exam04();
//        sec0301.exam05();
//        sec0301.exam06();
//        sec0301.exam07();
//        sec0301.exam08();


    } // end of main
}   // end of class
더보기
package chap03;

import java.util.Scanner;

/**
 * packageName : chap03
 * fileName : Sec0301
 * author : GGG
 * date : 2023-09-18
 * description :    연산자
 * 요약 :
 *       산술 : +, -, *, /, %(나머지 연산자)
 *       부호 : +, -
 *       문자열 붙이기 : +
 *       대입 : =, +=, -=, /=, %=
 *       증감 : ++, --
 *       비교 : ==, !=, >, <, >=, <=(1문자 비교, 숫자비교), instanaceof
 *       TODO: 문자열 비교 : 문자열.equals(문자열2)
 *       논리 : !(not), &, |,(비트연산자), &&,(논리곱) ||(논리합)
 *       삼항 : (조건식)? A : B
 *       우선순위 필요하면 () 쓸 것 : () 최고 우선순위
 * <p>
 * ===========================================================
 * DATE            AUTHOR             NOTE
 * —————————————————————————————
 * 2023-09-18         GGG          최초 생성
 */
public class Sec0301 {
    public void exam01() {
//  TODO: 부호연산자
        int x = 100;
        int result1 = +x;
        int result2 = -x;
        System.out.println(result1);    // 100
        System.out.println(result2);    // -100
    }

    public void exam02() {
//  TODO: 반대값(!)
        boolean paly = true;
//  결과 출력
        System.out.println(paly);   // true
        paly = !paly;
//  결과 출력
        System.out.println(paly);   // false
    }

    /**
     * TODO: 사칙연산 예제 : /(나눗셈) 조심
     */
    public void exam03() {
        int v1 = 5;
        int v2 = 2;

        int result = v1 + v2;
        System.out.println(result); // 7

//  TODO: 나눗셈
        int result2 = v1 / v2;
        System.out.println(result2);    // TODO: 결과 : 2 정수/정수 => 실수 부분이 잘림
//  TODO: 나눗셈 개선 코딩 : 강제 형변환 후 계산해야함
        double result3 = (double) v1 / (double) v2;  // TODO 결과 : 2.5 실수 부분
//  double result3 = (double) v1 / v2;  // 위 코드와 같은 결과
        System.out.println(result3);
    }

//    TODO: 연습문제 : 1010 : 정수 1개를 입력받아 그대로 출력하기
//    입력 : 5
//    힌트 : .next(), .nextLine()
    public void exam04() {
        Scanner scanner = new Scanner(System.in);
        System.out.println("정수를 입력해주세요");
        System.out.println(scanner.next());
    }
//    TODO: 연습문제 : 1014 : 문자 2개 입력받아 순서 바꿔 출력하기(설명)
//    입력 : a b
//    출력 : b a
//    힌트 : .next()
    public void exam05() {
        Scanner scanner = new Scanner(System.in);
        System.out.println("정수를 입력해주세요");

        String str1 = scanner.next(); // 공백까지 입력받기 #1
        String str2 = scanner.next(); // 공백까지 입력받기 #2

        System.out.println( str2 + ", " + str1 );
    }

    /**
     * char : 내부적으로 정수로 저장됨(유니코드 : 아스키코드 확장판(한글, 중국어 등을 표시)
     */
    public void exam06() {
        char c1 = 'A' + 1;  // char(정수) : 'B' ('A" 아스키코드(65) + 1 = 66)
        char c2 = 'A';
//  결과 출력
        System.out.println(c1);
        System.out.println(c2);
    }

//    TODO: 연습문제3) char 이용하는 문제
//     값이 'A' 로 주여져 있습니다. 'A' 대문자이면 대문자이군요 라고 출력하고
//                                 소문자이면 소문자이군요 라고 출력하고
//                                 숫자이면 숫자이군요 라고 출력하세요.
    public void exam07() {
        Scanner scanner = new Scanner(System.in);
        int charCode = 'A'; // 값이 주어져 있음 (65)
//        TODO: 아래 코딩을 완성하세요
// TODO:                    대문자 : 65(A) ~ 90(Z)
        if (charCode >= 65 && charCode <= 90){
            System.out.println("대문자이군요 " + charCode);
//        TODO :            소문자 : 97(a) ~ 122(z)
        } else if (charCode >= 97 && charCode <= 122) {
            System.out.println( "소문자이군요 " );
//        TODO :             숫자 : 48(0) ~ 57(9)
        } else if ((charCode >= 48) && (charCode <= 57)){
            System.out.println(" 숫자이군요 " );
        } else {
            System.out.println( "다른 문자군요" );
        }
    }
/**
 * 연습문제 : 정수 1개가 주어진다. 2와 3의 배수이면 2 또는 3의 배수이군요
 *                             아니면         2 또는 3의 배수가 아니군요
*/
    public void exam08() {
        int value = 6;
//        TODO: 아래 코딩을 완성하세요
        if ((value % 2 == 0) || (value % 3 == 0)){
            System.out.println( " 2 또는 3의 배수이군요" );
        } else {
            System.out.println( " 2 또는 3의 배수가 아니군요" );
        }
        
    }

}   // end of class

chap03./ Verifu03 연습문제

- 나눗셈을 결과 / 무한대 출력
- 원의 넓이 ( 반지름 * 반지름 * 3.14 ) / double 사용
- 중첩 if문 사용
더보기
import chap03.Verifu03;

/**
 * packageName : PACKAGE_NAME
 * fileName : JavaApplication
 * author : GGG
 * date : 2023-09-18
 * description :    실행 클래스
 * 요약 :
 * <p>
 * ===========================================================
 * DATE            AUTHOR             NOTE
 * —————————————————————————————
 * 2023-09-18         GGG          최초 생성
 */
public class JavaApplication {
//  메인 클래스 단축키 : main
    public static void main(String[] args) {
// TODO : 연습문제
        Verifu03 verifu03 = new Verifu03();
//        verifu03.exam01();
//        verifu03.exam02();
//        verifu03.exam03();

    } // end of main
}   // end of class
더보기
package chap03;

import java.util.Scanner;

/**
 * packageName : chap03
 * fileName : Verifu03
 * author : GGG
 * date : 2023-09-18
 * description :    연습문제 자바 파일
 * 요약 :
 * <p>
 * ===========================================================
 * DATE            AUTHOR             NOTE
 * —————————————————————————————
 * 2023-09-18         GGG          최초 생성
 */
public class Verifu03 {
 TODO : 클래스 제 3 요소
 TODO : 속성(멤버 변수)
 TODO : 생성자 함수
 TODO : 함수(멤버 메소드)

    /**
     * 문제1) 두 실수를 입력받아서 나눗셈을 결과를 출력하세요.
     * 단, 두번째 수가 0일 경우 "무한대" 로 출력하세요
     * 입력 : 9
     * 3
     * 출력 : 3.0
     */
    public void exam01() {
        Scanner scanner = new Scanner(System.in);
        System.out.println("첫 번째 수를 입력해주세요");

        String input1 = scanner.next(); // 문자열 입력 -> 실수로 변환
        System.out.println("두 번째 수를 입력해주세요");
        String input2 = scanner.next(); // 문자열 입력 -> 실수로 변환

        double input1_num = Double.parseDouble(input1);
        double input2_num = Double.parseDouble(input2);

        if (input2_num != 0.0) {
            System.out.println("결과 : " + (input1_num / input2_num));
        } else {
            System.out.println("결과 : 무한대");
        }
    }

    /**
     * 문제2) 원의 넓이를 구하시요. ( 반지름 * 반지름 * 3.14 )
     */
    public void exam02() {
        int var1 = 10; // 반지름
// TODO:               *(double) : 3.14 가 실수여서 생략 가능하나, 정수였으면 (double)
        double value = (double) var1 * var1 * 3.14;
        System.out.println("원의 넓이 : " + value);
    }

    /**
     * 문제3) 아이디와 패스워드를 각각 입력받아 아이디가 "java"가 아니면
     * "로그인 실패:아이디가 존재하지 않음"을 출력하세요.
     * 2) 아이디가 "java" 이면, 패스워드를 체크해서 패스워드가 12345이면 "로그인 성공" 출력하고,
     * 패스워드가 12345가 아니면 "로그인 실패:패스워드가 틀림"을 출력하세요.
     * 힌트 : 중첩 if문 쓰기
     */
    public void exam03() {
        Scanner scanner = new Scanner(System.in);
//      아이디 입력
        System.out.println("아이디 : ");
        String input_name = scanner.nextLine();

//      패스워드 입력
        System.out.println("패스워드 : ");
        String password = scanner.nextLine(); // 숫자로 들어온다고 가정
        int input_password = Integer.parseInt(password);  // 숫자 패스워드

        if(input_name.equals("java")) {
            if(input_password == 12345) {
                System.out.println("로그인 성공");
            } else {
                System.out.println("로그인 실패:패스워드가 틀림");
            }
        } else {
            System.out.println("로그인 실패 : 아이디가 존재하지 않음");
        }
    }
}   // end of class