본문 바로가기
부트캠프

[TIL] 유데미X사람인 취업 부트캠프 20일차 / java

by 상똥 2024. 1. 11.

[1. 오늘 배운 것]

1. 연습문제 

- switch-case를 활용하여 문자가 모음인지 확인

public class MyChar {

    public boolean isVowel(char ch) {
        switch (ch) {
            case 'a':            
            case 'e':
            case 'i':
            case 'o':
            case 'u':
            case 'A':
            case 'E':
            case 'I':
            case 'O':
            case 'U': return true;
        }

        return false;
    }
}

 

2. 자바 반복문 : for

- 기본 구조 : for(초기값; 한계값; 변화값)

 

3. for_연습문제 : 소수인지 확인하기

- MyNumberRunner

package loop_for;

public class MuNumberRunner {
    public static void main(String[] args) {
        MyNumber number = new MyNumber(9);
        boolean isPrime = number.isPrime();
        System.out.println("isPrime " + isPrime);
    }
}

- MyNumber

package loop_for;

public class MyNumber {
    private int number;

    public MyNumber(int number) {
        this.number = number;
    }

    public boolean isPrime() {
        for (int i = 2; i < number; i++) {
            if (number % i == 0)
                return false;
        }
        return true;
    }
}

 

4. for_연습문제 : 값 더하기

- MyNumberRunner

package loop_for;

public class MuNumberRunner {
    public static void main(String[] args) {
        MyNumber number = new MyNumber(9);
        int sum = number.sum();
        System.out.println("sum " + sum);
    }
}

- MyNumber

package loop_for;

public class MyNumber {
    private int number;

    public MyNumber(int number) {
        this.number = number;
    }

    public int sum() {
        int sum = 0;
        for (int i = 1; i < number; i++) {
            sum += i;
        }
        return sum;
    }
}

 

5. for_연습문제 : Number Triangle 출력하기

- MyNumberRunner

package loop_for;

public class MuNumberRunner {
    public static void main(String[] args) {
        System.out.println("factorial " + factorial);
        number.printNumberTriangle();
    }
}

- MyNumber

package loop_for;

public class MyNumber {
    private int number;

    public MyNumber(int number) {
        this.number = number;
    }

    public void printNumberTriangle(){
        for (int i = 1; i <= number; i++) {
            for (int j = 1; j <= i; j++) {
                System.out.print(j+" ");
            }
            System.out.println();
        }
    }
}

- 결과

 

6. 자바 반복문 : while

- 기본 구조 : while(반복 조건) {실행문}

 

7. while_연습문제 : 제곱과 세제곱 출력하기

- WhileNumberPlayerRunner

package loop_while;

public class WhileNumberPlayerRunner {
    public static void main(String[] args) {
        WhileNumberPlayer player = new WhileNumberPlayer(30);

        player.printSquaresUptoLimit();
        player.printCubesUptoLimit();
    }
}

- WhileNumberPlayer

package loop_while;

public class WhileNumberPlayer {
    private int limit;

    public WhileNumberPlayer(int limit){
        this.limit=limit;
    }

    public void printSquaresUptoLimit(){
        int i=1;
        while(i*i<limit){
            System.out.print(i*i+" ");
            i++;
        }
        System.out.println();
    }

    public void printCubesUptoLimit(){
        int i=1;
        while(i*i*i<limit){
            System.out.print(i*i*i+" ");
            i++;
        }
    }
}

 

8. 자바 반복문 : do while문

- 기본구조 : do {실행문} while (조건문)

- 조건이 먼저 검토되지 않으므로 조건에 부합하지 않아도 적어도 한 번은 실행됨

 

9. do while 연습문제 

package loop_dowhile;

import java.util.Scanner;

public class DoWhileRepeatedQuestionRunner {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int number = 0;

        do {
            System.out.print("Enter a number : ");
            number = scanner.nextInt();
            System.out.println("Cube is " + number * number * number);
        } while (number >= 0);
    }
}

- 결과

 

10. break continue

- break : 반복문 탈출

- continue : 조건에 부합할 시 건너뛰기

 

11. 연습문제

- 팩토리얼

public class FactorialCalculator {

    public int calculateFactorial(int number) {
        int sum=1;
        
        if (number<0){
            return -1;
        }
        
        if (number==0){
            return 1;
        }
        
        for(int i=1;i<=number;i++){
            sum*=i;
        }
        
        return sum;
    }
}

- 마지막 자리수 반환하기

public class NumberUtils {

    public int getLastDigit(int number) {
        while(number>=0){
            return number%10;
        }
        return -1;
    }
}

- 자리수 계산하기

public class NumberUtils {

    public int getNumberOfDigits(int number) {
        if (number < 0){
            return -1;
        }
        
        if(number == 0){
            return 1;
        }
        
        int noOfDigits = 0;
        
        while(number > 0){
            number /= 10;
            noOfDigits++;
        }
        
        return noOfDigits;
    }
}

- 숫자 역순으로 반환하기

public class NumberUtils {

    public int reverseNumber(int number) {
        if (number < 0){
            return -1;
        }
        
        if (number < 10){
            return number;
        }
        
        int reversedNumber=0;
        
        while (number > 0) {
            int digit = number % 10;
            reversedNumber = reversedNumber * 10 + digit;
            number /= 10;
        }
        return reversedNumber;
    }
}

 

12. 자바 참조형

- 참조타입 : String, int, BigDecimal 등등

- 기본변수 : 참조타입으로 선언되는 변수

- 객체 : heap에 저장됨

- 기본변수 : stack에 저장됨

 

- 객체의 저장 위치

 

13.String 클래스

- string.length() : string의 문자 길이 반환

- charAt(n) : 문자열에서 n번째 문자 반환

- substring(n, m) : 문자열에서 n부터 m-1자리까지의 문자열 반환

- string.indexOf("st") : 문자열 내의 st의 첫 시작 위치 반환(0)

- string.contains("s") : 문자열 안에 s가 포함되어 있는지 확인

- string.startsWith("s") : string이 s로 시작하는지 확인

- string.endsWith("ng") : string이 ng로 끝나는지 확인

- string.equals("string") : string이 string과 같은지 확인

- string.equalsIgnoreCase("StRinG") : 대소문자에 관계없이 같은지 확인

- string.concat("add") : string에 add 문자열 더하기

 

14. StringBuffer & StringBuilder

- StringBuffer : 문자열을 생성할 수 있는 클래스, 수정 가능, 멀티스레딩 가능(속도 느림)

- StringBuilder : StringBuffer보다 빠른 문자열 생성 클래스

 

15. Wrapper

- 각각의 기본 타입에 상응하는 클래스가 있는데, 이를 래퍼클래스라고 부름

 

[2. 오늘 잘한 점]

시간안에 강의 다 듣고, 개인 공부도 했다. 팀스터디 시간에 원래 다같이 코테를 풀기로 했는데 두 분이 미리 풀어오셔서 나랑 다른 한 분만 풀고 두분은 자유시간 가지심ㅋ 부러웠다 뭐 어쨌든 시간 안에 코테도 풀었고 잘 했다~~

 

[3. 개선해야할 점]

진도에 대비해서 자바스크립트를 잘 공부해둬야 할 것 같다! 집에 가서도 일찍 자지 말고 프로젝트좀 하다가 자는게 좋을 것 같다