SEB_BE 9일차 - Java기초2

subimm_·2022년 8월 31일
0

코드스테이츠

목록 보기
10/83

💡 오늘의 학습목표

  • 조건문
  • 반복문

📔 제어문

  • 코드의 흐름을 바꾸는 문장
    • 조건문 : if switch
    • 반복문 : for while do while

📙 조건문

  • if문
if(조건식) { // boolean 값으로 평가될 수 있는 조건식
	//조건식이 참일때 실행되는 블록
}
  • if...else문
    조건식의 결과에 따라 실행 블록을 선택
if(조건식1) {
	//조건식1이 참이면 실행되는 블록
}
else if (조건식2) {
	//조건식1이 참이 아니면서 조건식2가 참이면 실행되는 블록
}
else {
	//조건식1과2가 모두 참이 아닐 떄, 실행되는 블록
    //else문은 생략 가능
}
  • Switch문
    조건식이 true 일 경우에 블록 내부의 실행문을 실행하는 것이 아니라, 변수가 어떤 값을 갖느냐에 따라 실행문이 선택된다.
switch (dice) {
	case "1":
    	System.out.println("1번");
        break; // 다음 case 실행x switch문 탈출
    case "2":
    	System.out.println("2번");
        break;
    default: // 괄호 안 값과 같은 값이 없으면 여기서 실행
    	System.out.println("없는 숫자" + dice);
        break;
}
  • if문 예제
    나이를 입력받아 술을 마실수 있는지 이상 여부 리턴
if (age >= 20 ) return true;
else return false;

📙 반복문

  • for 문
    조건식이 참인 동안 주어진 횟수만큼 실행문을 반복적으로 수행
int sum = 0;
// for(초기화; 조건식; 증감식)
for(int num = 0; num <10; num++) {
	sum += num;
}
System.out.println(sum); //1~9까지의 합 45 출력됨.

초기화식이 필요 없을 경우나 초기화식 증감식 둘 이상 가능

for(int i=0, j=100; i<=50 && j>=50; i++, j--){
	실행문;
}
  • while문
    조건식이 true일 경우에 계속해서 반복 /for문과 상호대체 가능
(초기화);
while(조건식) {
	실행문; //조건식이 참인 동안 실행됨.
    증감식;
}
int num = 0, sum = 0;
while(num <= 10 {
	sum += num //sum = sum +num
    num++;
}

조건식에 true를 사용하면 while 문을 빠져나가기 위한 코드를 작성해주어야함. break 사용가능

  • do-while 문
do {
  (1)실행문 // 처음 한 번은 무조건 실행
} while((2)조건식);

  • break문
    반복문인 for while do-whileswitch 조건문에서도 사용
    대개 if문과 같이 사용되며, if문의 조건식에 따라 for / while문을 종료 할 때 사용

  • continue문
    반복문에서만 사용
    블록 내부에서 실행되면 for문의 증감문이나 while, do-while 문의 조건식으로 이동하여 실행된다.
    -반복문이 종료되지 않음


코플릿 문제 예제

  • 1 이상의 자연수를 입력받아 소수(prime number) 인지 여부를 리턴
public boolean isPrime(int num) {
    // TODO:
    if (num == 2) return true;
    if (num == 1 || num % 2 == 0) return false;

    for (int i = 3; i < Math.sqrt(num); i += 2) { //제곱근까지만 검사
      if (num % i ==0) return false;
    }
    return true;
	} 
// 반복문 -> 2부터 자기 자신 -1 까지 중에 나누어 떨어지는 수가 있는지 검사 -> 있다 -> false
// 반복문 종료 -> true

// 2를 제외한 소수는 전부 홀수이다.

// 제곱근 : 9의 제곱근 -> 3
//81 의 약수
//1, 3, 9, 27, 81
//81의 제곱근 9 제곱근까지만 검사하여도 소수 여부 검사 가능
  • 특정 달(month)을 입력받아 각 달에 몇 일이 있는지 리턴
	public int daysInMonth(int month) {
    // TODO:
    if (month==1 || month==3 || month==5 || month == 7 || month == 8 || month == 10 || month == 12) {
      return 31;
    } else if (month ==2){
      return 28;
    } 
    else {
      return 30;
    }
	} // 내가 if문으로 푼 풀이

레퍼런스 (switch문 활용)

switch (month) {
    case 2: return 28;
    case 4: 
    case 6:
    case 9:
    case 11: return 30;
    default: return 31;

회고

쓰레기가 된 기분을 살짝 느꼈다.ㅋㅋㅋㅋㅋㅋㅋ
페어분이랑 조건문 반복문 문제를 풀었는데 조건문은 그나마 괜찮았지만 반복문으로 넘어가 알고리즘 문제를 푸는 순간 정말 아무것도 모르는 백지 상태가 되었다,,,,,오늘 저녁에는 문제를 마저 풀어야겠다..내일이 너무 걱정된다. 내가 배운건 숫자인데 갑자기 함수를 푸는 기분😂

profile
코린이의 공부 일지

0개의 댓글