반응형
- 제어문 키워드
- 조건문 : if, switch
- 반복 제어문(loop문) : for, while, do-while
- 제어 키워드(jump문) : break, continue
조건문
1. if문
- boolean타입을 리턴하는 조건문
- Optional : 실행할 구문이 한 줄만 존재할 경우 '{}' 생략 가능
- if문 안에 또 다른 if문을 중첩해서 사용 가능
- 비즈니스 코드의 경우엔 if문이 상당히 많이 반복되므로, 테스트 커버리지는 60~70만 통과해도 성공적인 테스트가 된다.
- if (조건식){
실행 구문;
} - if (조건식){
실행구문;//조건이true일때실행
}
else{
실행 구문; // 조건이 false이면 실행
} - if (조건식1){
실행 구문; // 조건식1이 true일 때 실행
} else if(조건식2) {
실행 구문; // 조건식2가 true이면 실행
} else if(조건식n) {
실행 구문; // 조건식n이 true이면 실행
}else{
실행 구문; // 조건식들이 모두 false이면 실행
} - if (조건식1){
실행 구문; // 조건식1이 true일 때 실행
if (조건식2) {
실행 구문; // 조건식2가 true이면 실행
}else{
실행 구문; // 조건식2가 false이면 실행
}
}else{
실행구문;//조건식1이 false이면실행
}
- if (조건식){
package ch04;
/**
* if-else 문
*/
public class IfElseEx1 {
public static void main(String args[]) {
boolean isComplete = true;
if(isComplete) System.out.println("완료되었습니다");
int i = 20;
if( i < 10 ){
System.out.println("if 조건이 true여서 if 블럭 실행 : i가 10보다 작습니다");
} else {
System.out.println("if 조건이 false로 else 블럭 실행 : i가 10보다 큽니다");
}
int year = 2022;
int month = 12;
if( ( (year == 2022) && (month >= 1) ) && ( (year == 2022) && (month <= 11) ) ) {
System.out.println("2022년 12월 이전이다");
}else{
System.out.println("2022년 12월이다");
}
}
}
if( (year == 2022) && (month >= 1) ) && ( (year == 2022) && (month <= 11) ) // 조건문
//-> 내부 클래스에서만 쓰는 boolean을 반환타입으로 하는 메서드로 작성해서 유지보수성을 높이도록 한다.
2. switch문
- 값에 따라 분류를 할 경우에 사용하는 조건문
- 특정변수를 반복적으로 비교할 때, if-else if문 대신 사용해 가독성을 높일 수 있다.
- if문과 달리 조건이 많아도 실행 속도에 영향이 없다.
- case문의 변수엔 정수 자료형의 기본형, 열거형, 문자열 타입을 지원한다.
- 열거형은 타입과 값을 모두 체크하기 때문에 switch문과 사용하기가 좋다.
- 열거형은 타입과 값을 모두 체크하기 때문에 switch문과 사용하기가 좋다.
- 'case : 값' 으로 조건을 체크하고, 일반적으로 케이스마다 break;를 통해 다음 case문을 실행하지 않도록 한다.
- 'break' : switch문 뿐만 아니라 반복문을 강제로 빠져나오게 한다.
- 'default :' : if문의 else를 의미하는 조건에 맞는 case문이 존재하지 않을 때 실행하는 기본값이다.
- 중첩 switch문
package ch04;
import java.util.Scanner;
/**
* switch 문 예제
*/
public class SwitchEx2 {
public static void main(String args[]) {
// 콘솔창에서 값을 입력 받을 수 있도록 java.util.Scanner 객체를 생성
Scanner scanner = new Scanner(System.in);
System.out.print("당신의 점수를 입력하세요: ");
int i = scanner.nextInt(); // 입력한 점수를 int정수로 얻는다
String grade = "";
switch (i / 10) { // 점수를 10으로 나눈 값으로 체크
case 10: // 값이 10 or 9이면 A
case 9:
grade = "A";
break; // break문을 만나면 switch 블럭 종료
case 8:
grade = "B";
break;
case 7:
grade = "C";
break;
case 6:
grade = "D";
break;
default: // 이외에는 F
grade = "F";
break;
}
System.out.println(grade + "학점 입니다");
}
}
-> break; 문이 존재하지 않으면 같은 실행 조건의 case문으로 동작
반복문
1. for문
- 초기화는 for문당 한번만 실행된다.
- 초기화와 증감식에 여러 항목 삽입가능
- 조건식이 빈 경우엔 무한 루프로 동작
- break : for문을 강제로 빠져나간다.
- continue : 실행 순서를 for문의 '}'로 이동한다.
-> 다음 조건으로 넘어간다. - 변수를 두 개 이상 사용할 경우, ','를 구분자로 변수를 초기화한다.
- 중첩 for 문
package ch04;
/**
* 중첩 for 문 - 구구단 예제
*/
public class NestedForGugudan {
public static void main(String args[]) {
// 구구단 가로 출력
for(int i=2; i<=9; i++) {
for(int j=1; j<10; j++) {
System.out.print(i + " X " + j + " = " + (i*j) +"\t");
}
System.out.println();
}
for(int i = 2; i <=9 ; i++)
System.out.print("[" + i + "단]\t\t");
System.out.println();
// 구구단 세로 출력
for(int i = 1; i <=9 ; i++) {
for (int j = 2; j<=9 ; j++) {
System.out.print(j+" X "+i+" = "+ (i*j) + "\t");
// System.out.printf("%d X %d = %2d\t", j, i, j*i);
}
System.out.println();
}
}
}
- For-each문 (향상된 loop문)
- 순차적으로 값을 꺼낼 경우 반복처리하는 for문
- 원하는 요소로 이동해 처리 불가
- for (데이터타입변수명:배열또는콜렉션)
{
실행구문;
}
2. while문
- 조건이 true이면 항상 실행하는 반복문
- 데몬 서버 : 받은 모든 요청을 핸들러로 전달하는 역할
- 서버의 인기가 Apache -> nginx로 이동
- 중첩 while문
3. do-while문
- 조건과 상관없이 한번은 실행되고 이후에 조건문이 true면 반복하는 반복문
- while, for loop문은 zero/many iterative loop, do~while은 one/many iterative loop
package ch04;
/**
* 중첩 while 문
*/
public class NestedWhileEx {
public static void main(String args[]) {
int colLength = 3;
int rowLength = 10;
int colCount = 0;
int rowCount;
while(colCount < colLength) {
rowCount = 0;
while(rowCount < rowLength) {
System.out.print("*");
rowCount++;
}
System.out.println();
colCount++;
}
}
}
package ch04;
public class DoWhileEx {
public static void main(String args[]) {
int num = 0;
// do 코드블록은 무조건 한 번은 실행된다
do {
System.out.print(num + " ");
num++;
} while( num < 3);
}
}
제어 키워드
1. continue
- 반복문의 시작점으로 이동하는 키워드
- 반복문을 벗어나지 않는 키워드
2. break
- 반복문 수행 중 강제로 종료시켜서 반복문을 빠져 나오는 키워드
3. 반복문을 구분해 제어하기 위한 라벨
public static void main(String args[]) { // 레이블 first
first:
for (int i = 1; i < 5; i++) {
// 레이블 second
second:
for (int j = 1; j < 3; j++) {
System.out.println("i = " + i + "; j = " + j);
if (i == 2) {
// 현재 loop를 종료하고 first 레이블의 loop가 종료된다
break first;
}
}
}
}
소프트 스킬 -> 압박 면접 : 대처 능력과 협업 능력 파악 -> 단답형으로 대답하는 것보다, 서술형으로 어떤 방식으로 접근해서 어떤 방식으로 해결했고 답하는 게 낫다.
기업에서는 리더도 선호하지만, 중재자 역할을 선호, 조장이 아니어도 한사람씩 챙기는 역할을 잘하기 때문에 도움을 주는 퍼실레이터
하드 스킬 = 기술의존적 -> 중요하지 않다.
반응형
'Server Programming > BackEnd Project' 카테고리의 다른 글
16일차 - TIL (0) | 2022.12.27 |
---|---|
15일차 - TIL (0) | 2022.12.26 |
14일차 - TIL (0) | 2022.12.26 |
13일차 - TIL (0) | 2022.12.25 |
13일차 - 자바를 통해 요구사항 구현하기 (1) | 2022.12.23 |