[Java] 💻제어문
비교문(분기문)
if문
주어지는 조건의 결과가 true이면 if문 블럭을 코드를 실행함
if문 블럭내의 수행문이 한 줄이면 중괄호 블럭 생략 가능
- 단일 if문
if( ) ;
- if ~ else문
if( ) ~ else ;
- 다중 if문
if( ) ~ else if( ) ~ else ;
switch문
If문의 조건값은 boolean형인데 비해,
switch문의 조건값은 long형을 제외한 정수형(byte, short, int) 또는 char형인 것이 다르다.
JDK7.0이상부터는 문자열도 지원함
switch(인자값) {
case 조건값1 :
수행문; break;
case 조건값2 :
수행문; break;
case 조건값3 :
수행문; break
default :
수행문;
}
System.exit(0);
출력문 출력안되게 프로그램 종료시킬 수 있다.
반복문
for문
특정한 명령들을 정해진 규칙에 따라 반복처리 할 때 사용
for(초기식 ; 조건식 ; 증감식){
수행문1;
수행문2;
}
for(int i = 1 ; i <= 5 ; i++){
System.out.println(i+"번째 수행");
}
확장 for문 (for - each문)
for(타입 변수명 : 배열명 또는 컬렉션)
주로 배열에서 사용
int[]array = {10,20,30,40,50};
...
for(int num : array){
System.out.print(num + "\t"); }
int → 배열 또는 컬렉션의 요소의 타입
num → 배열의 요소(저장된 데이터)를 읽어와서 저장한 변수
array → 배열명 또는 컬렉션
while문
조건비교에 만족 할 때만 반복처리하는 제어문. 선 비교, 후 처리
console 프로그램 만들 시 while문을 가장 많이 이용
while(true): 무한반복,무한루프 (증감식을 빼먹는 경우가 많은데 그럴경우에 무한루프에 빠질 수 있다.)
do - while문
조건비교에 불만족 하더라도 무조건 한번은 수행. 선 처리, 후 비교
🔎 while문과 차이점
- - 조건식을 검사하기 전에 무조건 실행 부분을 한 번 실행
- - 마지막에 세미콜론(;)을 반드시 써야 함
public class WhileEx{
public static void main(String args[]){
int cnt = 0;
while(cnt < 10){
System.out.println(cnt);
cnt++;
}
System.out.println("끝!");
}
}
public class DoWhileEx{
public static void main(String args[]){
int cnt = 0;
do{ //do 블럭을 한 번 실행하고 나서 조건체크함
System.out.println(cnt);
cnt++;
}while(cnt < 10); // ;
System.out.println("끝!");
}
}
while문의 조건을 do-while문의 조건에 넣을 경우에 두 번 실행될 수도 잇다.
public class DoWhileMain {
public static void main(String[] args) {
String str="Hello world";
int su = 0;
while(su++ < 5) { // 조건식 안에 증감식 사용 가능하다.
System.out.println(str);
}
System.out.println("-----------");
int su2=0;
do {
System.out.println(str);
}while(su2++ <5); // do-while문에서 마지막에 ;필수!!!!
}
}
return; (함수탈출)
break; (루프탈출)
(자기 자신을 감싸고 있는)가장 가까운 반복문을 탈출할 때 쓰이는 제어문
public class BreakMain01 {
public static void main(String[] args) {
int n = 1;
while(n<=10) {
System.out.println(n);
n++;
if(n == 8){ //(중괄호 생략)
break; //while문을 빠져나감
}
}
}
}
다중 반복문일 때 전체 반복문을 빠져나가는 것이 아니라, break가 포함되어 있는 반복문만 빠져나감
public class BreakMain02 {
public static void main(String[] args) {
for(int i =0;i<3;i++) {
for(int j=0;j<5;j++) {
if(j == 3)
break;
System.out.println("i= "+ i + ", j =" + j);
}
}
}
}
break 레이블명;
break lable;은 break;와 같지만 다중 반복문에서 한번에 바깥쪽 반복문을 탈출할 때 많이 쓰이는 제어문
레이블 선언할 때 ; 가 아니라 : 으로 끝마친다.
exit_for:
break 레이블 지정할 떄 ; 아니라 :으로 끝마친다.
break exit_for;
다중 반복문일 때 전체 반복문을 빠져나가는 것이 아니라 break가 포함되어 있는 반복문만 빠져나감
public class BreakMain03 {
public static void main(String[] args) {
exit_for: //break 레이블 지정할 때 ;아니라 :으로 끝마친다.
for(int i =0;i<3;i++) {
for(int j=0;j<5;j++) {
if(j == 3)
break exit_for;
System.out.println("i= "+ i + ", j =" + j);
}
}
}
}
continue; (반복계속)
(자기 자신을 감싸고 있는)가장 가까운 반복문에서 반복문을 탈출하기위해 사용되는 것이 아니라
continue문 이하의 수행문들을 포기하고 다음 회차의 반복을 수행하기위한 제어문
특정 조건일 때 수행문의 실행을 멈추고 다음 반복 회차로 건너뜀
public class ContinueMain {
public static void main(String[] args) {
for(int i =0;i<=10;i++) {
if(i%3!=0) {//3의 배수
continue;
}
System.out.println(i);
}
}
}