국비학원/공부

15일차 java(3)

mikan- 2023. 5. 11. 22:47

# if문

public class IFTest2 {

	public static void main(String[] args) {
		// 중첩 IF문
		System.out.println("중첩 if문");

		// 조건1 su = 1 ~ 100 까지의 범위에 해당되는 숫자만 입력을 받음
		// 조건2 짝수, 홀수 판별(수/2 == 0(2의 배수) 수/3 != 0(3의 배수)
		int su = 101; // 사용자로부터 값을 입력받아 저장
		if ((su >= 1) && (su <= 100)) { // && : and
			if (su % 2 == 0) { // 조건식(변수, 연산자(관계, 논리))
				System.out.println(su + " 은 짝수 입니다.");
			} else {
				System.out.println(su + " 은 홀수 입니다.");
			}
		} else {
			System.out.println("100사이의 값을 입력 하세요.");
		}
		System.out.println("if문 종료");
		
		// 조건1 age = 12 이상인가
		// 조건2 부모랑 동반 했나
		int age = 11;
		//String result = "";
		boolean withParent = false;
		
		if(age >= 12) {
			System.out.println("관람가능");
		} else {
			if (withParent) {
				System.out.println("부모랑 관람가능");
			} else {
				System.out.println("불가");
			}
		}
	}
}

 

# for문 (1)

public class ForTest {

	public static void main(String[] args) {
		// 1번째
		System.out.println("1. for문의 유형(c++)");

		/*-
		 * 형식) for(초기식;조건식;증감식)
		 *            실행구문
		 */

		//       1)    2)5)... 4)...
		for (int i = 1; i <= 5; i++) {
			//                                            3)6)...
			System.out.println("반복할 for문 연습 " + i + "번째");
		}

		// 2번째
		System.out.println("2. for문의 유형(C언어 유형)");
		// 초기식의 변수를 for문 밖에 선언(C언어)
		int k;

		for (k = 10; k > 5; k--) {
			System.out.println(k + "번째 테스트");
		}

		// 3번째
		System.out.println("3. 초기식이 생략된 for문의 유형");
		int j = 10;

		for (; j > 5; j--) {
			System.out.println(j + "번째 테스트");
		}
		System.out.println("3번째 종료");

		// 4번쨰
		System.out.println("4. 최소한의 for문 구성(증감식도 생략가능)");
		// 초기식은 for문 밖에 선언이 가능
		int l = 1;
		l++; // 증감식은 for문 바깥에서 선언할 수가 없음
		for (; l <= 20;) {
			System.out.println(l + "번째 테스트");
			l++;
		}

		// 5번째
		/*-
		 * System.out.println("5. for문 전부 생략"); 
		 * for(;;) // = while (true)
		 * 		System.out.println("무한루프");
		 */

		// 6번째
		System.out.println("6. 합계, 곱 을 동시에 구하기");
		// 1 ~ 100 까지의 합을 구하기
		int sum = 0;
		int gap = 1; // 곱하기(곱하기라 0은 안됨)

		for (int o = 1; o <= 100; o++) {
			sum += o; // sum = sum + o;
			gap *= o; // gap = gap * o;
		}
		System.out.println("1 ~ 100의 합계는 : " + sum);
		System.out.println("1 ~ 100의 곱은 : " + gap);
		
		// 1 ~ 100 까지의 짝수의 합을 구하기
		int sum1 = 0;
		int sum2 = 0;
		for(int p = 1; p <= 100; p++) {
			if (p % 2 == 0) {
				sum1 += p;
			} else {
				sum2 += p;
			}
		}
		System.out.println("1 ~ 100의 짝수의 합계는 : " + sum1);
		System.out.println("1 ~ 100의 홀수의 합계는 : " + sum2);
	}
}

 

# for문 (2)

public class ForTest2 {

	public static void main(String[] args) {
		// 제어문에 또 다른 제어문 -> 중첩 for문 (=이중 for문)
		System.out.println("중첩 for문");
		for (int a = 0; a < 5; a++) { // outer for문
			for (int b = 0; b < 5; b++) { // inner for문
				System.out.println("a = " + a + ", b = " + b);
			}
			System.out.println("========================");
		}
		System.out.println("for문 종료");
	}
}

 

# switch문 (1)

public class SwitchTest {

	public static void main(String[] args) {
		System.out.println("switch 구문");

		int su = 50;

		// switch 조건식에 따라서 case 값이 적게 나올수 있도록 조건을 해줘야됨
		switch (su % 2) {
		case 0:
			System.out.println(su + " 은 짝수 입니다.");
			break;
		case 1:
			System.out.println(su + " 은 홀수 입니다.");
			break;
		}
		System.out.println("switch 구문 연습 종료");
		/*-
		if (su % 2 == 0) { // 조건식(변수, 연산자(관계, 논리))
			System.out.println(su + " 은 짝수 입니다.");
		} else {
			System.out.println(su + " 은 홀수 입니다.");
		}*/
	}
}

 

# switch문 (2)

public class SwitchTest2 {

	public static void main(String[] args) {
		System.out.println("switch 구문(범위지정)");

		// 0 ~ 10 까지만 입력을 받는 경우
		int su = 11;

		// switch 조건식에 따라서 case 값이 적게 나올수 있도록 조건을 해줘야됨
		switch (su) {
		// case 1 ~ 10 : case의 범위를 지정할 때 사용
		case 0:
		case 2:
		case 4:
		case 6:
		case 8:
		case 10:
			System.out.println(su + " 은 짝수 입니다.");
			break;
		case 1:
		case 3:
		case 5:
		case 7:
		case 9:
			System.out.println(su + " 은 홀수 입니다.");
			break;
		// if문의 else if 구문의 맨 마지막 else구문
		default:
			System.out.println("입력받을 수 있는 값은 1 ~ 10 까지만");
			break;
		}
		System.out.println("switch 구문 연습 종료");
	}
}

 

# while문

public class WhileTest {

	public static void main(String[] args) {
		/*-
		 * 반복문 : 특정 조건에 따라서 반복해서 실행이 되는 문장(반복해서 문장사용)
		 * 
		 * 1. 반복할 횟수가 정해져 있는 경우 : for, while
		 * 2. 반복할 횟수가 정해져 있지 않은 경우 : for(X), while(O)(입출력 프로그램)
		 * 
		 */
		// 단순하고 반복적인 문장 (1) 반복할 횟수 (2) 반복해서 수행할 문장
		/*-
		 * System.out.println("while구문 연습1"); // 시작값 : 1
		 * System.out.println("while구문 연습2"); 
		 * System.out.println("while구문 연습3");
		 * System.out.println("while구문 연습4"); 
		 * System.out.println("while구문 연습5"); // 종료값 : 5
		 */
		// (2) while문 - 끝나는 문장이 없을시 무한루프에 빠짐
		// 조건 먼저 확인하고, 조건이 거짓이 될 때까지 반복
		int i = 1;
		while (i <= 5) {
			System.out.println("while구문 연습" + i);
			i++; // i = i+1
		}
		System.out.println("while구문 종료");

		// (3) do-while
		// 먼저 실행 후 조건은 나중에 봄
		int j = 1;
		do {
			System.out.println("do구문 연습" + j);
			j++; // i = i+1
		} while (j <= 5);
		System.out.println("do구문 종료");
	}
}

 

# break문 (1)

public class BreakTest {

	public static void main(String[] args) {
		// break문
		System.out.println("레이블이 없는 break문(가장 가까운 loop탈출)");
		for (int a = 0; a < 5; a++) {
			for (int b = 0; b < 5; b++) {
				// b 의 카운트가 2가 됐을시(실제론 b는 0부터 시작하니 1) 강제로 종료됨
				if (b == 2) {
					// 가장 가까운 2번째 for문을 탈출함
					break;
				}
				System.out.println("a = " + a + ", b = " + b);
			}
			System.out.println("========================");
		}
		System.out.println("for문 종료");
	}
}

 

# break문 (2)

public class BreakTest2 {

	public static void main(String[] args) {
		// break문
		System.out.println("레이블이 있는 break문(레이블과 가장 가까운 loop탈출)");
		
		A: // 레이블명:
		for (int a = 0; a < 5; a++) {
			for (int b = 0; b < 5; b++) {
				// 형식) 조건식 break 레이블명
				if (b == 2) {
					// b == 2 일시 A인 레이블명으로 탈출함
					break A;
				}
				System.out.println("a = " + a + ", b = " + b);
			}
			System.out.println("========================");
		}
		// A: 컴퓨터 입장으로 적어야 되기 때문에 레이블은 위에 적었지만 실제론 여기서 실행됨
		System.out.println("for문 종료");
	}
}

 

# continue문

public class ConTest {

	public static void main(String[] args) {
		// continue
		System.out.println("레이블이 없는 continue");
		// A:
		for (int a = 0; a < 5; a++) {
			for (int b = 0; b < 5; b++) {
				// 
				if (b == 2) {
					// b == 2 일시 continue에 의해서 skip이 됨
					continue;
					//continue A;
				}
				System.out.println("a = " + a + ", b = " + b);
			}
			System.out.println("========================");
		}
		// A: 컴퓨터 입장으로 적어야 되기 때문에 레이블은 위에 적었지만 실제론 여기서 실행됨
		System.out.println("for문 종료");
	}
}

 

# 별찍기 (1)

public class StarTest {

	public static void main(String[] args) {
		// a(행의수), b(행이 증가할 때마다 별도 같이 증가)
		for (int a = 1; a <= 5; a++) {
			//System.out.println("*");
			for (int b = 1; b <= 5; b++) {
				System.out.print("*");
			}
			System.out.println();
		}
	}
}

 

# 별찍기 (2)

public class StarTest2 {

	public static void main(String[] args) {
		// a(행의수), b(행이 증가할 때마다 별도 같이 증가)
		for (int a = 1; a <= 5; a++) {
			//System.out.println("*");
			for (int b = 1; b <= a; b++) {
				System.out.print("*");
			}
			System.out.println();
		}
		System.out.println("\n\n\n");
		for (int a = 5; a >= 1; a--) {
			//System.out.println("*");
			for (int b = 1; b <= a; b++) {
				System.out.print("*");
			}
			System.out.println();
		}
	}
}

 

# 별찍기 (3)

public class StarTest3 {

	public static void main(String[] args) {
		for (int a = 5; a >= 1; a--) {
			//System.out.println("*");
			for (int b = 1; b <= a; b++) {
				System.out.print("*");
			}
			System.out.println();
		}
	}
}

 

'국비학원 > 공부' 카테고리의 다른 글

17일차 java(5)  (1) 2023.05.15
16일차 java(4)  (1) 2023.05.15
14일차 java(2)  (0) 2023.05.10
13일차 java(1)  (0) 2023.05.09
13일차 oracle(6)  (1) 2023.05.09