JAVA & 제어문(1) (Day02)

Hyo·2023년 12월 10일
0

KaKao 클라우드 4기

목록 보기
2/4
post-thumbnail

2023/12/07

1. JAVA란?

  • 객체 지향 프로그래밍 언어
  • 웹 및 모바일 앱 개발에 주로 사용
  • 수많은 라이브러리 존재
  • JAVA의 8가지 특징

    1.간단하다 (Simple)
    2.객체 지향적이다 (Object-oriented)
    3.인터프리터 언어이다 (Interpreted)
    4.강력하다 (robust)
    5.안전하다 (Secured)
    6.플랫폼이 독립적이다 (Platform independent)
    7.멀티 스레드를 지원한다 (Multithreaded)
    8.동적이다 (Dynamic)

2. 기본 구조

01. 프로그램 = Data+Code

02. JVM(Java Virtual Machine)

  • 바를 실행하기 위한 가상 컴퓨터
  • 받지 않고 CPU가 Java를 인식, 실행할 수 있게하는 가상 컴퓨터
  • 감소, 편의성 증가

3. JAVA 자료형

*참조 자료형 : 포인터

4. 제어문

01. if문

Q1) "돈이 있으면 택시를 타고 가고, 돈이 없으면 걸어간다."

boolean money = true;
if (money) {
    System.out.println("택시를 타고 가라");
}else {
    System.out.println("걸어가라");
} 

비교 연산자

int money = 2000;
if (money >= 3000) {
    System.out.println("택시를 타고 가라");
}else {
    System.out.println("걸어가라");
}

AND/OR/NOT 연산자

Q2) "돈이 3000원 이상 있거나 카드가 있다면 택시를 타고 그렇지 않으면 걸어가라"

int money = 2000;
boolean hasCard = true;

if (money>=3000 || hasCard) {
    System.out.println("택시를 타고 가라");
} else {
    System.out.println("걸어가라");
}

contains
:List 자료형에 해당 아이템이 있는지 조사하는 메서드

Q3) "만약 주머니에 돈이 있으면 택시를 타고, 없으면 걸어가라"

ArrayList<String> pocket = new ArrayList<String>();
pocket.add("paper");
pocket.add("handphone");
pocket.add("money");

if (pocket.contains("money")) {
    System.out.println("택시를 타고 가라");
}else {
    System.out.println("걸어가라");
}

*pocket 리스트에 안에 money란 요소가 있으므로 pocket.contains("money")가 참이 되어 ‘택시를 타고 가라’가 출력.

else if

Q4)"지갑에 돈이 있으면 택시를 타고, 지갑엔 돈이 없지만 카드가 있으면 택시를 타고, 돈도 없고 카드도 없으면 걸어가라“

boolean hasCard = true;
ArrayList<String> pocket = new ArrayList<String>();
pocket.add("paper");
pocket.add("handphone");

if (pocket.contains("money")) {
    System.out.println("택시를 타고 가라");
}else if(hasCard) {
    System.out.println("택시를 타고 가라");
}else {         
    System.out.println("걸어가라");
}

02. switch/case문

구조

switch(입력변수) {
    case 입력값1: ...
         break;
    case 입력값2: ...
         break;
    ...
    default: ...
         break;
}

ex)

public class Sample {
    public static void main(String[] args) {
        int month = 8;
        String monthString = "";
        switch (month) {  // 입력 변수의 자료형은 byte, short, char, int, enum, String만 가능
            case 1:  monthString = "January";
                     break;
            case 2:  monthString = "February";
                     break;
            case 3:  monthString = "March";
                     break;
            case 4:  monthString = "April";
                     break;
            case 5:  monthString = "May";
                     break;
            case 6:  monthString = "June";
                     break;
            case 7:  monthString = "July";
                     break;
            case 8:  monthString = "August";
                     break;
            case 9:  monthString = "September";
                     break;
            case 10: monthString = "October";
                     break;
            case 11: monthString = "November";
                     break;
            case 12: monthString = "December";
                     break;
            default: monthString = "Invalid month";
                     break;
        }
        System.out.println(monthString);
    }
}

03. while문

구조

while (조건문) {
    <수행할 문장1>;
    <수행할 문장2>;
    <수행할 문장3>;
    ...
}

Q1) "열 번 찍어 안 넘어가는 나무 없다"

int treeHit = 0;
while (treeHit < 10) {
    treeHit++;  // treeHit += 1 로도 표현 가능
    System.out.println("나무를  " + treeHit + "번 찍었습니다.");
    if (treeHit == 10) {
        System.out.println("나무 넘어갑니다.");
    }
}

무한루프

while (true) {    
    <수행할 문장1>;
    <수행할 문장2>;
    ...
}

while 문 빠져나가기 - break

int coffee = 10;
int money = 300;

while (money > 0) {
    System.out.println("돈을 받았으니 커피를 줍니다.");
    coffee--;
    System.out.println("남은 커피의 양은 " + coffee + "입니다.");
    if (coffee == 0) {
        System.out.println("커피가 다 떨어졌습니다. 판매를 중지합니다.");
        break;
    }

while 문으로 돌아가기 - continue

int a = 0;
while (a < 10) {
    a++;
    if (a % 2 == 0) {
        continue;  // 짝수인 경우 조건문으로 돌아간다.
    }
    System.out.println(a);  // 홀수만 출력된다.
}

04. for문

구조

String[] numbers = {"one", "two", "three"};
for(int i=0; i<numbers.length; i++) {
    System.out.println(numbers[i]);
}

for 문으로 돌아가기 - continue

int[] marks = {90, 25, 67, 45, 80};
for(int i=0; i<marks.length; i++) {
    if (marks[i] < 60) {
        continue;  // 조건문으로 돌아간다.
    }
    System.out.println((i+1)+"번 학생 축하합니다. 합격입니다.");
}

이중 for 문

for(int i=2; i<10; i++) {
    for(int j=1; j<10; j++) {
        System.out.print(i*j+" ");
    }
    System.out.println("");  // 줄을 바꾸어 출력하는 역할을 한다.
}

04. for each문

구조

for (type 변수명: iterate) {
    body-of-loop
}

*반복 횟수를 명시적으로 주는 것은 불가능, 순차 반복만 사용 가능

ex1)

String[] numbers = {"one", "two", "three"};
for(String number: numbers) {
    System.out.println(number);
}

-> for문 예제와 같음

ex2)-ArrayList로 구현

import java.util.ArrayList;
import java.util.Arrays;

public class Sample {
    public static void main(String[] args) {
        ArrayList<String> numbers = new ArrayList<>(Arrays.asList("one", "two", "three"));
        for (String number : numbers) {
            System.out.println(number);
        }
    }
}
profile
갓난 아이의 거짓 울음

0개의 댓글