일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Linux
- 월간코드챌린지
- 고잉버스
- 연습문제
- Kotlin
- GoingBus
- 자바스크립트 코딩의 기술
- 리눅스
- 문자열
- 백준 java
- 리눅스마스터1급
- 코딩테스트
- 스프링 빈
- 반복문
- 프로그래머스
- 스프링 컨테이너
- toCharArray
- 자바
- 개발자 회고록
- map
- 카카오
- 백준 javascript
- 코테
- java 백준 1차원 배열
- Memoir
- 리눅스마스터 3과목
- JavaScript
- Java
- 리눅스마스터 1급 정리
- 명령어
- Today
- Total
hoon's bLog
Java 제어문의 조건문, 반복문 본문
안녕하세요.
이번 포스팅은 제어문에 대해서 알아보도록 하겠습니다.
제어문은 크게 조건문, 반복문으로 나뉩니다.
조건문 : 조건식과 문장으로 구성(주로 if, switch case문)
반복문 : 반복적인 작업 수행 시 사용(for, while, do-while)
먼저 조건문의 if문부터 알아보도록 하겠습니다.
if 문 : 조건식이 true 일 경우에만 실행문이 실행 - if(조건식) 다음에 한 문제일 경우 { } 를 생략할 수 있습니다. - if문 만 사용 할 수도 있고, else if(조건식)을 추가하여 if문과 다른 조건을 추가할 수 있습니다. - if조건도, else if조건도 아닌 조건은 else문을 타게 됩니다. |
public class ControlStatement {
public static void main(String[] args) {
int a = 10;
if(a == 10) { //a=10 이므로 이 조건 true!
System.out.println("a는 10입니다."); //해당 실행문 실행
}else if(a > 10){
System.out.println("a는 10보다 큰 수 입니다.");
}else {
System.out.println("a는 10보다 작은 수 입니다.");
}
}
}
실행결과
이렇게 조건문을 통해서, 해당 값의 조건이 true일 경우 원하는 실행문을 넣어주면 됩니다.
참고로, 실무에서도 if문은 정말 안 쓰이는 곳이 없는데, if문 안에 if문으로 중첩으로도 사용이 가능합니다.
단, 조건식이 많아지면 많아질 수록 실행 속도가 느려질 수 있다는 부분 유의해주시기 바랍니다!
다음은 삼항연산자입니다.(사실 연산자 파트에 넣었어야 했는데 if문과 함께 설명하기 위해 등장 ㅎㅎ)
조건식 ? 피연산자1 : 피연산자2 조건식의 연산 결과가 true 이면, 결과는 피연산자1, 조건식의 연산 결과가 false 이면 결과는 피연산자2 |
public class ControlStatement {
public static void main(String[] args) {
int a = 10;
int b = 9;
String rst = (a > b) ? "a가 큰 수 입니다." : "b가 큰 수 입니다.";
//a > b 의 결과가 true 이므로 피연산자1 결과가 rst에 저장
System.out.println(rst);
}
}
실행결과
경우에 따라 삼항연산자를 사용하면 if문보다 간결해지는 경우도 있으니 상황에 맞게 잘 사용하시면 됩니다!
다음은 조건문의 마지막, switch 문입니다.
switch문 : 변수의 값에 따라 문장을 실행할 수 있도록 하는 제어문 switch문에서 사용하는 키워드로는 switch, case, default, break, continue 입니다. |
public static void main(String[] args) {
int value = 1;
switch(value){ //이 안에 원하는 변수 값이 들어가서 아래의 case가 판별!
case 1: //case가 각각의 변수 값의 종류를 분류, 현재 value=1이므로 해당 case문 호출
System.out.println("1");
break;
case 2:
System.out.println("2");
break;
case 3 :
System.out.println("3");
break;
// 각 라인에 있는 break를 제거하면 value가 1일 경우 1일 출력되고,
// switch문장을 빠져나가는 것이 아니라 1,2,3, 그외의 숫자가 연속해서 실행됩니다!!
default : //위의 case를 제외한 나머지의 경우, if문의 else와 동일한 효과이다!
System.out.println("그 외의 숫자");
}
}
단, switch 문 사용 시 반드시 아래 부분을 기억해주시기 바랍니다!
- 조건식 결과(case 옆에)는 반드시 정수, 문자열만 가능
- case문의 값은 중복되어선 안됩니다!
추가로, continue문은 반복의 수행 중 조건문과 조건이 맞는 경우,
이후 블록 내부의 다른 수행문을 수행하지 않고 조건문을 빠져 나갑니다!
이렇게 if문과 삼항연산자, switch문의 조건문들을 알아보았습니다.
그럼 이제 반복문들에 대해서 알아볼까요?
먼저 while문입니다.
while문 : 조건문의 실행 결과가 true일 동안 반복해서 실행
그럼 1부터 10까지의 합을 구하는 예제로 while문을 알아보도록 하겠습니다.
public static void main(String[] args) {
int total = 0; //총합이 들어갈 변수
int i = 1; //1부터 더해질 변수
while(i <= 10) { //괄호안에 조건이 참이 될 때 까지 아래의 실행문 반복
total = total + i;
i++; //total 연산이 끝난후 i를 증가시킨다.
}
//i=11이 되는 순간 while문을 빠져나온다.
System.out.println("결과값 : " + total);
}
출력결과
아주 간단하죠?
while문 같은 경우 조건식이 성립하지 않으면 하나도 실행되지 않을 수 있음을 명심하시고,
조건식을 잘 만들어주시기 바랍니다!
다음은 do-while문입니다.
do while문 : 무조건 한 번은 실행되는 반복문
역시 위와 같은 예제를 do-while로 만들어서 알아보겠습니다.
public static void main(String[] args) {
int i = 1;
do {
System.out.println("do-while 테스트중, i = " + i); //반복이 될 실행문
}while(i > 10); //블록안에 실행문이 실행될 조건
}
실행결과
위에 코드에서 i=1이므로 while(i > 0)이 성립하지 않는다!(false)
만약 while문이였다면 실행되지 않았겠지만,
do-while문은 최초 한 번은 무조건 실행을 하고 조건이 맞지 않음을 판별하고 실행을 멈춥니다.
조건식을 적절히 바꾸고, 블록 안에 증감식(i++;)을 넣어주면 정상적으로 반복문을 수행할 거예요!
다음은 감히 반복문의 꽃이라고 말할 수 있는, for문입니다.
for문 : 변수 초기화, 조건식, 증감식이 한 줄에 모두 있고, 초기화식은 최초 한 번만 수행
public static void main(String[] args) {
int total = 0;
for(int i = 1; i <= 10; i++){
total = total + i;
}
System.out.println("결과값 : " + total);
}
실행결과
이렇게 for문을 끝으로 반복문 까지 알아보았습니다.
너무나 쉽고 기초적인 개념이지만, 실무에서 비즈니스 로직 부분에서 가장 많이 쓰이는 게 제어문이고,
활용도에 따라 정말 깔끔한 코딩이 될 수도 있고, 조건 개미지옥에 빠질 정도로 더러워질 수 있는 것이
제어문이라고 생각합니다.
아직은 저도 뉴비 개발자이기에 계속해서 공부하고, 삽질도 많이 하고 있지만,
이러한 시간들을 이겨낸다면 현직에 종사하시는 고수님들의 반열에 오를 수 있겠....죠?ㅎㅎㅎ
그때까지 이 인고의 시간을 모두 같이 이겨내 봅시다!
오늘도 글 읽어주시느라 고생하셨습니다.
늘 그렇듯 개선점, 객관적인 태클은 언제나 대환영입니다!!
출처 : 자바의 정석 3rd Edition 내용 정리
'IT > Java' 카테고리의 다른 글
Java new instance this 생성자 (0) | 2021.01.05 |
---|---|
Java private extends abstract 캡슐화, 추상클래스 (0) | 2021.01.05 |
Java class object 클래스와 객체 객체지향프로그래밍 OOP (0) | 2021.01.05 |
Java 변수와 자료형 & 연산자 (0) | 2021.01.03 |
Java 개발환경 Setting (0) | 2020.12.24 |