Sinbum's blog
  • 인셉션 개발자
    • History
    • Editorial Board
    • 세미나
      • MS_빅데이터_분석_교육
      • Databricks_Musinsa_사례분석
      • Databricks_AMOREPACIFIC_사례분석
    • 개발자 꿀팁
  • 리눅스
    • 리눅스 기초
      • 기본명령어
      • 프록시서버
      • 온프레미스
      • systemd
      • 우분투 앱
      • vi 사용법
    • 도커
      • MSA 아키텍처
      • 도커 설명
      • 도커 설치
      • 도커 가이드
        • 컨테이너 만들기
        • 컨테이너 보관
        • 컨테이너 사용
        • 컨테이너 관리
        • 컨테이너 볼륨
        • 컨테이너 통신
        • 도커 연습
  • 언어
    • 자바
      • 자바(JAVA)는 무엇인가?
        • JVM 메모리
      • 자바 설치 가이드
      • 자바 언어 활용
        • 변수
        • static
        • 상수
        • 연산자
        • 제어문
        • 배열
        • CLI-자바사용
        • 클래스
        • 메소드
        • 값에의한 호출
        • GUI 프레임
        • 생성자
        • 오버로딩
        • 상속
        • 상속생성자
        • 접근제한자 와 가비지 컬렉션
        • 추상클래스 와 인터페이스
        • 다중구현
        • 예외처리
        • 컬렉션 프레임워크
        • 쓰레드
        • 네트워크
        • 다중 접속 서버 구현
      • 간단한 채팅 앱 개발하기
    • 파이썬
      • 파이썬(Python)은 무엇인가?
      • 파이썬 설치 가이드
      • 파이썬 언어 활용
        • 변수
        • 입력,출력
        • 타입선언
        • 자료구조
        • 주석처리
        • 문자열
        • 리스트
        • 반복문
        • 연산자
        • 조건문
        • 정규표현식
          • re 모듈
          • 메타문자1
          • 메타문자2
          • 그루핑
          • 전방탐색
          • 문자열 바꾸기
          • Greedy 와 Non-Greedy
      • 마치며...
  • 형상관리,CI/CD
    • 깃허브
      • 깃허브 협업 모델
      • 깃허브 설치 와 ssl
      • 깃허브를 잘쓰는 팁 모음
  • BigData
    • BigData 개념
      • OLTP,OLAP
      • ELT,ETL
      • DW
      • ObjectStorage
      • LambdaArc
      • OGG
    • Kafka
      • 환경설정 및 소스코드 다운로드
      • 아파치 카프카는?
        • 카프카의 시작
        • 카프카 특성
        • 빅데이터 아키텍처
      • 카프카 기초 개념
    • BuildApplications
      • Airflow
      • Grafana
    • PowerBi
      • DAX
        • REMOVEFILTERS
        • DAX_문법
        • DAX_함수
    • Azure
      • SynapseAnalytics
  • IOT
    • 아두이노
      • 설치 및 기초
      • 센서의 종류
      • led 출력하기
      • 시리얼 통신
      • 무선 통신
  • About
    • SINBUM
    • INTEREST
    • PROJECTS
      • 업무 프로젝트
      • 개인 프로젝트
        • 티스토리API를 사용한 블로그 앱
        • 노션 API와 블로그 연동 자동화 하기
        • 로지텍 마우스 수리
    • CONTACT
Powered by GitBook
On this page
  • 제어문 - 분기문 (if)
  • 실습 예제
  • 제어문 - 분기문 (Switch)
  • 논리 연산자를 이용한 제어 조건의 이용
  • 제어문 - 반복문 While, do-While, for 문
  • While 문
  • do-While 문
  • for 문
  • break, continue
  • for문의 break
  • continue
  • 구구단 출력 (문자열 + 숫자 = 문자열, 연산의 우선순의 주의)
  1. 언어
  2. 자바
  3. 자바 언어 활용

제어문

제어문 - 분기문 (if)

  • 조건에 따라 분기를 할 수 있습니다.

  • if (조건식){ 참일 경우 실행 }else{ 거짓일 경우 실행 }

  • 제어문에 따른 실행 문장이 한 문장이면 중괄호를 생략해도 됩니다.(권장아님)

  • 참거짓 상황에서 실행할 문장이 2문장 이상이면 중괄호 블럭을 반드시 추가해야합니다.

  • 처리할 문장이 한 문장이더라도 쉬운 식별을 위해 "{,}"을 추가합니다.

  • 중괄호 블럭안은 경계를 쉽게 알아볼수 있도록 반드시 들여쓰기를 합니다.

실습 예제

Pay.java

public class Pay {

public static void main(String[] args) {
    int year = 5;         //근무(경력) 년수
    int child = 0;        //자녀수
    int pay = 1500000;    //초봉 기본급

    if (year == 0){
        System.out.println("신입사원입니다.");
    }else if (year == 1) {
        pay = pay + 200000;
        System.out.println("경력 1년 입니다.");
    }else if(year == 2) {
        pay = pay + 400000;
    }else if(year == 3) {
        pay = pay + 600000;
    }else if(year == 4) {
        pay = pay + 800000;
    }else{
        pay = pay + 1500000;
    }

    //자녀수당을 계산합니다.
    if ( year >=1){
        if (child > 1){
            pay = pay + (child * 200000);
        }
    }

    System.out.println("기본급: " + pay);
    System.out.println("연  봉: " + (pay * 13));
    System.out.println("월급여: " + ((pay * 13)/12));
}

}

제어문 - 분기문 (Switch)

  • 수식의 결과가 일정한 수치 형태로 나열되어 있는 값과 비교하는 경우 사용합니다.

  • case문에 올수 있는 데이터 타입은 byte, char, short, int, long처럼 정수 형태만 올 수 있습니다.

SwitchTest.java

public class SwitchTest{ public static void main(String args[]){ int k = 1;

    switch(k){
        case 1:
            System.out.println("1 입니다.");
            break;
        case 2:
            System.out.println("2 입니다.");
            break;
        case 3:
            System.out.println("3 입니다.");
            break;
        case 4:
            System.out.println("4 입니다.");
            break;
        default:
            System.out.println("1부터 4까지 입력해야 합니다.");
            break;
    }
}


}

SwitchTest2.java

public class SwitchTest2{
public static void main(String args[]){
char c = 'C';
String str = "C";
    switch(c){  //정수 계열만 가능
        case 'A':  //65
            System.out.println("입력된 코드는 A 입니다.");
            break;
        case 'B':  //66
            System.out.println("입력된 코드는 B 입니다.");
            break;
        case 'C':
            System.out.println("입력된 코드는 C 입니다.");
            break;
        case 'D':
            System.out.println("입력된 코드는 D 입니다.");
            break;
        default:
            System.out.println("코드는 A부터 D까지 입력해야 합니다.");
            break;
    }
}


}

논리 연산자를 이용한 제어 조건의 이용

  • Short Circuit . ||: 좌측의 연산식의 결과가 참이면 우측의 연산을 검사하지 않고 참 처리합니다.

    int a = 10; int b = 5;

    a > b || c < d (a가 b보다 크거나 c가 d보다 클 때 )

    . &&: 좌측의 연산식의 결과가 거짓이면 우측의 연산을 검사하지 않고 거짓 처리합니다.

    int a = 5; int b = 10;

    a > b && c < d

  • 입력받은 값이 3의 배수이거나 5의 배수인 수를 판단하는 IF문의 사용

    public class IfApp1{
    public static void main(String args[]){
    int k=101;
        //논리 연산자 or의 사용
        if((k % 3 == 0) || (k % 5 == 0)){
            System.out.println("k의 값은:" + k + ": 3의 배수이거나 5의 배수입니다.");
        }
        else{
            System.out.println("K의 값은 3의 배수이거나 5의 배수가 아닙니다.");
        }
    }
    
    }
  • 입력받은 값이 3의 배수이면서 5의 배수인 수를 판단하는 IF문의 사용

    public class IfApp2{
    public static void main(String args[]){
    int k=90;
        //논리 and 연산자
        if(k % 3 == 0 && k % 5 == 0){
            System.out.println("k의 값은:" + k + ": 3의 배수이면서 5의 배수입니다.");
        }
        else{
            System.out.println("K의 값은 3의 배수이면서 5의 배수가 아닙니다.");
        }
    }
    
    }

제어문 - 반복문 While, do-While, for 문

While 문

  • 참일동안 실행합니다.

  • 조건을 만족하지 않으면 한번도 실행을 안 합니다.

  • 순환 횟수를 정확히 지정할 수 없을 경우 사용합니다.

While.java

public class While{
public static void main(String args[]){

    int j = -5;

    //j가 0보다 작을 동안 실행합니다.
    while(j <= 0){
        System.out.println("번호 : " + j);//-5, -4
        j++;
        if(j==-3) break;
    }

    System.out.println("--------- END ---------");
    System.out.println("While 종료후 j의 값:" + j);
}

};

Unlimit.java

public class Unlimit {
public static void main(String[] args) {
    int i=0;

    while(true){
        i = i + 1;
        //2,3,4의 배수가 발견되면 while문을 벗어납니다.
        if((i % 2 == 0) && (i % 3 == 0) && ( i % 4 == 0)){
            break;
        }
    }
    System.out.println("2,3,4의 배수는 " + i + " 입니다.");

}


}

do-While 문

  • 조건에 관계 없이 무조건 1회는 실행합니다.

DoWhile.java

public class DoWhile{
public static void main(String args[]){
    int j=1;

    do{
        System.out.println("번호 : " + j); //1
        j++;  //2
        if(j == 5) break;
    //j가 0보다 작을 동안 실행
    }while(j < 0);

    System.out.println("--------- END ---------");
    System.out.println("do-while문 종료후의 j의 값:" + j);
}
};

for 문

  • 반복 횟수가 지정되어 있는 경우

  • for문은 내부에 초기화 코드를 가지고 있다.

  • 조건식이 참이면 계속 실행한다.

    for (int i=1; i<=5;   i++) {
    
    for(초기화;  조건식;  재초기화){
    ⓐ -------> ⓑ <-------- ⓔ   시계 반대 방향으로 회전
    │            ↗
    │          /
    ⓒ │        / ⓓ
    │     /
    │  /
    System.out.println("★");
    
    }
    
    // 최초 처리순서
    //   ⓐ --> ⓑ --> ⓒ --> ⓓ --> ⓔ --> ⓑ --> ⓒ
    // 반복 처리순서
    //   ⓑ --> ⓒ --> ⓓ --> ⓔ --> ⓑ --> ⓒ

Array.java

public class Array {
    public static void main(String[] args){
    int[] pay = {1800, 2200, 2600, 3000, 3400, 3800};
    
    //        System.out.println(pay[0]); //pay 배열 index 0의 값
    //        System.out.println(pay[1]);
    //        System.out.println(pay[2]);
    //        System.out.println(pay[3]);
    //        System.out.println(pay[4]);
    //        System.out.println(pay[5]);
        int i=0;
    
        //i는 5보다 작거나 같을 경우 실행
        for (i=0; i<=5; ++i){ //0,1,2,3,4,5,6
            System.out.println(i + "년차 연봉: " + pay[i]);
        }
        System.out.println(i);
    }
}

EvenSum.java(1부터 100까지 짝수의 합 구하기 (답 : 2550))

public class EvenSum {
public static void main(String[] args) {

    int sum = 0;

    for (int i=1; i<=100; i++) {
        if ((i%2)==0){
            sum += i;
        }
    }

    System.out.println("1부터 100까지 짝수의 합: " + sum);
}


}

▷ 홀수의 합을 구해 보세요. (2500 이 정답)

break, continue

for문의 break

Break.java

public class Break {
public static void main(String[] args) {
for (int i=0; i<=2; i++) {     //3

        //---------------------------------------
        for (int j=2; j>=0; j--) { //3
            // 출력하고 줄을 변경하지 않습니다.
            System.out.print("i=" + i + " j=" + j);
            System.out.print("     ");
            // 출력하고 줄 변경
            System.out.println("X-MAS");
            if (j == 1){
                System.out.println("j==1 break");
                break;
            }
        }// END 안쪽 for문
        //---------------------------------------

        if ( i == 1){
            System.out.println("i==1 break");
            break;
        }
    }// END 바깥쪽 for문
}


}

continue

  • 루틴을 벗어나지않고 특정 조건에서만 로직을 수행하지 않는 경우에 사용합니다.

Continue.java

public class Continue {
public static void main(String[] args) {

    for (int i=0; i<=2; i++) {
                         //  ┌ continue시 이동되는 곳
                         //  ↓
        for (int j=0; j<=2; j++) {
            if (i==j){
                continue;
            }else{
                System.out.println("i==" + i + " j==" + j);
            }
        }
    }
}


}

구구단 출력 (문자열 + 숫자 = 문자열, 연산의 우선순의 주의)

GuguDan.java

public class GuguDan{
    public static void main(String args[]){
        //1, 4, 7
        for (int i = 1; i <= 9; i += 3) {
        System.out.println("   " + i + "단\t\t   " + (i+1) + "단\t\t   " + (i+2) + "단");
        //                                1                   2                    3
        //                                4                   5                    6
        //                                7                   8                    9
        System.out.println("------------------------------------------");
        //1,2,3,4,5,6,7,8,9
        for (int j = 1; j <= 9; j++) {
        System.out.print(i + " * " + j + " = " + i*j + "\t");
        //               1 * 1 = 1
        //               1 * 2 = 2
        //               1 * 3 = 3
    
        System.out.print((i+1) + " * " + j + " = " + (i+1)*j + "\\t");
        //                2 * 1 = 2
        //                2 * 2 = 4
        //                2 * 3 = 6
    
        System.out.print((i+2) + " * " + j + " = " + (i+2)*j);
        //                3 * 1 = 3
        //                3 * 2 = 6
        //                3 * 3 = 9
    
        //줄 바꾸기 목적으로 사용됩니다.
        System.out.println("");
        }
        System.out.println("");
        }
    }
}

콘솔 결과

### 1단 2단 3단

1 * 1 = 1	2 * 1 = 2	3 * 1 = 3
1 * 2 = 2	2 * 2 = 4	3 * 2 = 6
1 * 3 = 3	2 * 3 = 6	3 * 3 = 9
1 * 4 = 4	2 * 4 = 8	3 * 4 = 12
1 * 5 = 5	2 * 5 = 10	3 * 5 = 15
1 * 6 = 6	2 * 6 = 12	3 * 6 = 18
1 * 7 = 7	2 * 7 = 14	3 * 7 = 21
1 * 8 = 8	2 * 8 = 16	3 * 8 = 24
1 * 9 = 9	2 * 9 = 18	3 * 9 = 27

### 4단 5단 6단

4 * 1 = 4	5 * 1 = 5	6 * 1 = 6
4 * 2 = 8	5 * 2 = 10	6 * 2 = 12
4 * 3 = 12	5 * 3 = 15	6 * 3 = 18
4 * 4 = 16	5 * 4 = 20	6 * 4 = 24
4 * 5 = 20	5 * 5 = 25	6 * 5 = 30
4 * 6 = 24	5 * 6 = 30	6 * 6 = 36
4 * 7 = 28	5 * 7 = 35	6 * 7 = 42
4 * 8 = 32	5 * 8 = 40	6 * 8 = 48
4 * 9 = 36	5 * 9 = 45	6 * 9 = 54

 7단 8단 9단

7 * 1 = 7	8 * 1 = 8	9 * 1 = 9
7 * 2 = 14	8 * 2 = 16	9 * 2 = 18
7 * 3 = 21	8 * 3 = 24	9 * 3 = 27
7 * 4 = 28	8 * 4 = 32	9 * 4 = 36
7 * 5 = 35	8 * 5 = 40	9 * 5 = 45
7 * 6 = 42	8 * 6 = 48	9 * 6 = 54
7 * 7 = 49	8 * 7 = 56	9 * 7 = 63
7 * 8 = 56	8 * 8 = 64	9 * 8 = 72
7 * 9 = 63	8 * 9 = 72	9 * 9 = 81
Previous연산자Next배열

Last updated 2 years ago