조건문 & 반복문

강상은·2023년 12월 4일
0

JAVA

목록 보기
6/7

Break와 Continue

Break문 예제

package basic;

import java.util.Scanner;

public class ForEx3 {

	public static void main(String[] args) {
//		for(int i = 0; i < 10; i++) {
//			//어떤 상황이 벌어지면 멈추라는 말이 자연스러우므로 어떤 상황에 해당하는 조건을 걸어줘야 함
//			System.out.println(i);
//			
//			if(i==7) {         //0부터 7까지 출력
//				break;
//			}


		for (int i = 0; i < 10; i++) {

			if (i == 7) {
				break;
			}			
			System.out.println(i);  //0부터 6까지 출력
									//구조가 어떻게 되냐에 따라서 값이 달라지니 주의
		}
	}
}

Continue

package basic;

import java.util.Scanner;

public class ForEx3 {

	public static void main(String[] args) {
//		for (int i = 0; i < 10; i++) {
//			System.out.println(i);
//			continue;
//			System.out.println(i);   //컴파일에러
//		}

//		for (int i = 0; i < 10; i++) {
//			// 반복하다가 continue를 만나면 그 밑 부분은 건너뛰고 다시 돌아라!!
////			System.out.println(i);
//			if (true) {
//				continue;
//			}
//			System.out.println(i);     //출력이 안됨
//		}
		
		for (int i = 1; i <= 10; i++) {

			if (i % 2==0) {
				continue;
			}
			System.out.println(i);                //홀수만 출력(if문은 짝수를 건너뛰어라 라는 뜻)

		}
	}
}

반복문(for,while,do~while)

For문

for = 반복횟수를 안다. (~하는동안,예약어)
while = 반복횟수를 모른다.

for문의 문법

for ( 초기식; 종료식; 증감식 ) {
	System.out.print(반복 횟수 or 변수를 입력해서 활용)
}

for문은 문법을 외워야하고 증감식부분은 비워도됨

  • 반복(회전수) 결정 조건 : 1) 처음 2) 끝 3) 일정한 규칙
    for( 초기식부분; 조건식부분(반복); 증감식부분 ) {

돌아가는 구조 : 초기식 > 조건식 > 반복실행블럭 > 증감식
반복실행블럭; > 조건식 > 반복실행블럭 > 증감식
}

//1 ~ 10
for(int i = 1; i <= 10; i++) {
	System.out.println(i);
	}

					 
// 64 ~ 83
		
//		for(int i = 63; i < 83;) {
//			System.out.println(i);
//      i++;
		// -7 ~ 39
//		
//		for(int i = -7; i < 40;) {
//			System.out.println(i);
//			i++;

For문 예제

// 17 ~ 59
//		for(int i = 16;;) {
//			if(i >= 59) break;
//			i++;
//			System.out.println(i);
//		}
// 9 ~ -27
//		for(int i = 10;;) {
//			i--;
//			if(i <= -28) break;
//			System.out.println(i);
			
// 192 ~ 247
//		for(int i = 192;;) {
//			System.out.println(i);
//			if(i >= 247 ) break;
//			i++;
// 64~92
//		for (int i = 63; i <92; ) { // 초기식은 과거 종료식은 현재 
//			i++;
//			System.out.println(i);
//		}
		
//17~ -24
		
//		for(int i = 17; i > -25;) { // 초기식은 현재 종료식은 i--;을 거쳐서 돌아왔기 때문에 과거
//			System.out.println(i);
//			i--;
//		}
		
// 211 ~ 263
//		for(int i = 210; i<263; ) { //초기식은 i++;을 거쳐서 왔기때문에 과거 종료식은 현재
//			i++;
//			System.out.println(i);
//		}
// 117 ~ 63
		for(int i = 118; ;) { //종료식이 비어있다는건 true값을 의미
			if(i <= 63) break;
			i--;
			System.out.println(i);
		}

		

종료식을 적어주는 것과 if break를 사용하는 것의 차이는 구조를 파악할때 종료시점을 어디에 걸어주느냐 때문

while문

(중간) 종료지점이 없으면 무한루프

종료 걸어주기 → 숫자같은 경우에는 작은 수가 되면 종료.

가급적 for를 쓰기

반복을 몇번할 지 모르는 상황에서는 사용(ex 게임에서 시작하려면 아무 키나 누르시오.)

연습 예제

// 21 ~ 39
//		int i = 20;    //과거
//		
//		while(i<39); {    // 마찬가지로 while()안에 true값만 가능 비워둘수없음
//			i++;
//			System.out.println(i);
//		}
		
//		//-5 ~ -27
//		int i = -4;		//과거
//		
//		while(i > -27) { //현재
//			i--;
//			System.out.println(i);
//		}
		
//		// 15 ~ -4
//		int i =	16;		//미래
//		while(true) {
//			i--;
//			System.out.println(i);
//			if(i <= -4) break; //현재
//		}
//		
		// 47 ~ 91
		int i = 46;
		while(true) {  //과거
		i++;
		if(i >= 92) break;  //??
		System.out.println(i);
		}

while문으로 간단한 예금출금 예제 풀이

import java.util.Scanner;

public class WhileEx {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int num;
		int i = 0, j = 0;

		while (true) {
			System.out.println("----------------------------");
			System.out.println("1.예금 | 2.출금 | 3.잔고 | 4.종료");
			System.out.println("----------------------------");
			System.out.print("선택> ");
			num = sc.nextInt();
			if (num == 1) {
				System.out.print("예금액> ");
				i = sc.nextInt();
			} else if (num == 2) {
				System.out.print("출금액> ");
				j = sc.nextInt();
			} else if (num == 3) {
				System.out.printf("잔고> %d\n", i - j);

			} else if(num == 4) {
				break;

			}
			
//			sc.close();
		}
		System.out.println("\n\n프로그램 종료");
	}

}

do while문

import java.util.Scanner;

public class WhileEx2 {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in); //(System.in)은 입력 스트림
		

		String inputText; //do 블럭 안에 선언하면 while문에서 변수를 사용할 수 없음
		
		do {
			//do while문은 무조건 시작하자마자 뭔가를 하고 판단하라는 것이므로
			//가장 많이 쓰이는 패턴은 값을 입력받고 판단할 경우
			System.out.print(">");
			inputText = sc.nextLine(); 
			System.out.println(inputText);
		}while(!inputText.equals("q"));

	}

}
class Main {
   public static void main(String[] args) {
//      while( 조건식(반복) ) {
//         반복실행블럭;
//      }
      
      // 9 ~ 37
//      int i = 8;
//      
//      while( i < 37 ) {
//         i++;
//         System.out.println(i);
//      }
      
      // -11 ~ -31
      int i = -11;
      
      while( i > -32) {
         System.out.println(i);
         i--;
      }
      
      // 119 ~ 83
      int i = 120;
      
      while( true ) {
         i--;
         System.out.println(i);
         if( i <= 83) break;
      }
      
      // 44 ~ 67
      int i = 44;
      
      while( true ) {
         if( i >= 68) break;
         System.out.println(i);
         i++;
      }
      
      // =================================================
      
//      do {
//         반복실행블럭;
//      } while( 조건식(반복) );
      
      // 24 ~ 61
      int i = 23;
      
      do {
         i++;
         System.out.println(i);
      } while(i < 61);
      
      // 83 ~ 141
      int i = 83;
      
      do {
         System.out.println(i);
         i++;
      } while(i <= 141);
      
      // 19 ~ 36
      int i = 18;
      
      do {
         i++;
         if(i >= 37) break;
         System.out.println(i);
      } while(true);
      
      // 6 ~ -27
      int i = 6;
      
      do {
         if(i <= -28) break;
	       System.out.println(i);
         i--;
      } while(true);
      
   }
}

조건문(if, if~else, switch)

문법

예제

package basic;

public class IfEx {

	public static void main(String[] args) {
	
		//조건이 하나만 있는 세상
		if(true) {
			System.out.println("참이면 나올 결과");
		}
		
		//조건이 두가지(참과 거짓, 참일 수도 있고 거짓일 수도 있는)있는 세상
		
		if(false) {
			System.out.println("참이면 나올 결과");
		} else {
			System.out.println("거짓이면 나올 결과");
		}
		
		//조건이 세가지 이상 있는 세상
		
		if(false) {         // 1)
			System.out.println("1)참이면 나올 결과");
		} else if(false){   // 2)
			System.out.println("2) 참이면 나올 결과");
		}else {             // 
			System.out.println("위 조건에 부합하지 않을 경우 나오는 나머지 부분");
		}
		


	}

}

예제 2

import java.util.Scanner;

public class Test {
	public static void main(String[] args) {
//case1		if( 조건식 ) {
			참실행블럭; // 삼항조건연산자와 같은 방식 (참일때x 거짓일때y)
			else {
			}
			
		}
		
//case2		if ( 조건식) {
			참실행블럭; // 삼항조건연산자와 다르게 거짓일때의 식이 필요하지 않음
				
		}

//case3 	if (조건식 ) {
				참실행블럭;
			else if( 조건식 ) {
				거짓실행블럭;
				else if( 조건식 ) {
					거짓실행블럭;
					else if( 조건식 ) {
						거짓실행블럭;
						else {
					}
			}
	}
}

if else

예제

package basic;

public class VariableScopeEx2 {

	public static void main(String[] args) {

		int var = 15;

		// 제어문 (if, for, while)
		
		//if문의 가장 기본 형태
		if (true) {
			int var2 = 20;
			System.out.println(var);
			System.out.println(var2);
		}
		System.out.println(var2); //if문 안에 var2를 선언했기때문에 밖에서 적용이 될 수 없음.
		//{} 범위(영역), 영역에서만 인식되는 개념이 있다. name scope(변수명이 인식되는 범위)
		
//		if (false) {
//			System.out.println("이것은 참이므로 찍힘"); //명제화시킬것
//		}

	}
}

중첩if문

class Main {
public static void main(String[] args) {
	int age = 25;
    boolean man = true;
    
    if(age >= 19) {
    	if(man) {
        	System.out.println("성인 남성 : 25000원");
            }else {
            System.out.println("성인 여성 : 21000원");
            }
            }else {
            System.out.println("청소년 : 15000원");
            }
       }
 }

논리연산자 예제

내가 작성한 조건문


int age = 19;
		
		if (age >=12 && age <19) {  // 삼항 조건 연산문은 참일때 거짓일때 값을 적어야 하지만 if는 하나만 적어도 됨
			System.out.println("청소년입니다. ");
		}
		else if (age <=19) {
			System.out.println("성인입니다. ");
		}
int age = 18;
		
		if (age >= 19 && age < 25) {
			System.out.println("19세 이상 25세 미만입니다. ");
		}
		
		if (age <19 || age <=26) {
			System.out.println("사람입니다. ");

if 또는 삼항 조건 연산자를 활용한 예제

문제
정수 1 :
정수 2 :
5와 7의 차는 2
정수 1 :
정수 2 :
10과 3의 차는 7

if를 활용한 코드

import java.util.Scanner;

class Test {
   public static void main(String[] args) {
      Scanner sc = new Scanner(System.in);
      int n1, n2;
      int result;
      
      System.out.print("정수1 : ");
      n1 = sc.nextInt();
      System.out.print("정수2 : ");
      n2 = sc.nextInt();
      
      if(n1 > n2) {
         result = n1 - n2;
      } else {
         result = n2 - n1;
      }
      
      System.out.printf("%d 와 %d 의 차는 %d", n1, n2, result);
      
      sc.close();
   }
}

삼항조건 연산자를 활용한 코드 (더 간결)

import java.util.Scanner;

public class Test {
	public static void main(String[] args) {
	      int n, n1;
	   
	      Scanner sc = new Scanner(System.in);
	      
	      System.out.print("정수 1 : ");
	      n = sc.nextInt();
	      System.out.print("정수 2 : ");
	      n1 = sc.nextInt();
	      
	    System.out.printf("%d 와 %d 의 차는 :%d", n, n1, n > n1 ? n - n1 : n1 - n);
	      
	      sc.close();
	   }
	}

0개의 댓글

관련 채용 정보