Notice
Recent Posts
Recent Comments
Link
«   2024/12   »
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 31
Archives
Today
Total
관리 메뉴

기록

day 0510 선택문_반복문 본문

📖

day 0510 선택문_반복문

슈슈파나 2024. 5. 10. 17:15

절거운 금요일입니다 ~
어제 책상우ㅣ에 몽쉘을 올려두고가서 오늘 먹으려했는데 몽쉐리 사라졌ㄸㅏ🙄
누가 내 몽쉘을 옮겼눈가 ,,?

제어문 : 프로그램 수행중에 사용자의 상황에 따라 흐름을 제어하는 명령어(문장)을 말한다

- 선택문 : 상황에 따라 동작시켜야 할 명령어(들) 선택 시키기 위한 문장이다
 if, switch

- 반복문 : 특정 조건을 만족할 동안에 특정 명령어(들)을 계속하여 반복시키기 위한 문장을 말한다
  for, while, do-while

- 기타 : 제어문에서 사용하는 키워드
  break, continue

 
/복습/

/*
사용자한테 0~9사이의 수를 입력받아
한글표기식 출력하는 프로그램을 작성
*/

import java.util.Scanner;

class D01 { // DigitToKorIf
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n;
		System.out.print("0~9사이의 수를 입력 : ");
		n = sc.nextInt();

		// 0하고 같은지
		if(n == 0){
			System.out.println("영"); // 0이 참이면 else if 실행안함
		}else if(n == 1){
			System.out.println("일");
		}else if(n == 2){
			System.out.println("이");
		}else if(n == 3){
			System.out.println("삼");
		}else if(n == 4){
			System.out.println("사");
		}else if(n == 5){
			System.out.println("오");
		}else if(n == 6){
			System.out.println("육");
		}else if(n == 7){
			System.out.println("칠");
		}else if(n == 8){
			System.out.println("팔");
		}else if(n == 9){
			System.out.println("구");
		}else{
			System.out.println("입력 오류");
		}

	}
}

 
/switch/
위와 같이 판별해야 하는 case가 여러가지 일때에 if ~ else if를 사용할 수 있지만
문장구조가 복잡해지고 읽기가 쉽지 않앙. 않아요!!
이럴때에 swich case를 사용하면 좀 더 간결하게 표현할 수 있어요.
 
<< switch ~ case를 사용하는 형식 >>

           // 변수, 변수 이용한 연산수식, 기능을 호출하는 명령.. 값에따라서
switch(항){
    case 값1:명령어; // case와 값 사이는 띄워준다
    case 값2:명령어; // 판별하고자하는 case 적어준다
    case 값3:명령어; 
    ..
    default:명령어n;
}

// switch를 if문으로 표현

if(항 == 값1){
    명령어1;
}else if(항 == 값2){
    명령어2;
}else if(항 == 값3){
    명령어4;
}else{
    명령어n;
}

 
/switch문/

/*
사용자한테 0~9사이의 수를 입력받아
한글표기식 출력하는 프로그램을 작성
*/

import java.util.Scanner;

class D02 { // DigitToKorIfSwitch
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n;
		System.out.print("0~9사이의 수를 입력 : ");
		n = sc.nextInt();

		// D03 : break가 없으면 해당하는 case부터 끝까지 출력된다
		switch(n){ 
			case 0:
				System.out.println("영");
				// break;
			case 1:
				System.out.println("일");
				// break;
			case 2:
				System.out.println("이");
			case 3:
				System.out.println("삼");
			case 4:
				System.out.println("사");
			case 5:
				System.out.println("오");
			case 6:
				System.out.println("육");
			case 7:
				System.out.println("칠");
			// D04 : 각 case에 동작시킬 명령어(들)을 한줄에 표현하여 문장을 더 간결하게 할 수 있다.
			case 8: System.out.println("팔"); break;
			case 9:
				System.out.println("구");
			default:
				System.out.println("입력 오류");
		}

	}
}

/*
해당하는 case부터 끝까지 동작합니다.
만약, 해당 case만 동작 시키고자 한다면
각 case문 끝에 break를 둡니다.

따라서 switch~case문을 쓸 때에
반드시 모든 case문제 berak를 두어야 하는 것은 아니고
내가 해결해야 하는 문제에 따라 적절한 위치에 break를 둡니다
*/

어,,ㅇㅓ,,, 숙면해따 ㅠ
 
/if문 출력 후 switch문으로 출력하기/

/*
사용자한테 월을 입력받아 해당 월의 마지막 날을
판별하여 출력하는 프로그램을 if문으로 작성
*/

import java.util.Scanner;
import java.util.Date;
class D06 { // LastDateIf
	public static void main(String[] args) 
		Scanner sc = new Scanner(System.in);
		int month, lastDate;

		System.out.print("월을 입력하세요 : ");
		month = sc.nextInt();

		if(month < 1 || month > 12){
			System.out.println("입력 오류");
			return;
		}

		if(month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12){
			lastDate = 31;
		}elste if( month == 4 || month == 6 || month == 9 || month == 11 ||){
			lastDate = 30;
		}else if( month == 2){
			lastDate = 28;
		}
		System.out.printf("%d월은 %d일까지 있어요", month, lastDate);
	}
}

/*
방법2) D07

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int month, lastDate = 31;

		System.out.print("월을 입력하세요 :");
		month = sc.nextInt();

		if( month < 1 || month > 12){
			System.out.println("입력오류");
			return;
		}

		if(month == 4 || month == 6 || month == 9 || month == 11){
			lastDate = 30;
		}else if(month == 2){
			lastDate = 28;
		}
		System.out.printf("%d월은 %d일까지 있어요", month, lastDate);
	}
*/
/*
swtich~case문으로 변경 해 봅니다
*/

import java.util.Scanner;
import java.util.Date;

class D08 { // LastDateIf
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int month, lastDate = 31;

		System.out.print("월을 입력하세요 : ");
		month = sc.nextInt();

		if(month < 1 || month > 12){
			System.out.println("입력 오류");
			return;
		}

		switch(month){ 
			case 4: lastDate = 30; break;
			case 6: lastDate = 30; break;
			case 9: lastDate = 30; break;
			case 11: lastDate = 30; break;
			case 2: lastDate = 28; break;
			default:
		}
		System.out.printf("%d월은 %d일까지 있어요", month, lastDate);
	}
}

 
/switch문으로 별자리 출력하기/

/*
사용자한테 이름, 생월, 생일을 입력받아 별자리를 판별하여 출력하는 프로그램을 작성

<< 실행 예 >>
이름을 입력 : 이름
몇월에 태어났나요 : 1
몇일에 태어났나요 :  28
%s님의 별자리는 %s입니다.
(단, 처리조건은 네이버 "별자리"를 참조합니다)
*/

import java.util.Scanner;

class D09 { // StarTest
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);

		String name, cons="";
		int mon, day, lastDate = 31;

		System.out.print("이름 입력 : ");
		name = sc.next();
		System.out.print("몇 월 : ");
		mon = sc.nextInt();
		System.out.print("몇 일 : ");
		day = sc.nextInt();
		
		// 1~12월, 30~31일 넘어가지 않게
		if(mon < 1 || mon > 12 || day < 1 || day > lastDate){
			System.out.println("입력 오류");
			return;
		}
		
		// 마지막 달 정하기
		if(mon == 4 || mon == 6 || mon == 9 || mon == 11){
			lastDate = 30;
		}else if(mon == 2){
			lastDate = 28;
		}
		/*
		switch(mon){
			case 4: case 6: case 9: case 11:  	lastDate = 30; break;
			case 2: lastDate = 28; break;
		}
		*/

		// 별자리 출력하기
		switch(mon){
			// 염소자리 , 물병자리 1.20 ~ 2.18
			// <= 염소자리 ~1.19 , 19일보다 적거나 같으면 "염소자리" 19일 이후면 "물병자리"
			case 1: if(day <= 19){cons = "염소자리";}else{cons = "물병자리";} break;

			//물병자리 18 , 물고기자리 2.19 ~ 3.20
			case 2: if(day <= 18) cons = "물병자리"; else cons = "물고기자리"; break;

			// 물고기자리 20 , 양자리 3.21 ~ 4.19
			case 3: if(day <= 20) cons = "물고기자리"; else cons = "양자리"; break;

			//양자리 19, 황소자리 4.20 ~ 5.20
			case 4: if(day <= 19) cons = "양자리"; else cons = "황소자리"; break;

			// 황소자리 20 , 쌍둥이자리 5.21 ~ 6.21
			case 5: if(day <= 20) cons = "황소자리"; else cons = "쌍둥이자리"; break;

			// 쌍둥이자리 21 , 게자리 6.22 ~ 7.22
			case 6: if(day <= 21) cons = "쌍둥이자리"; else cons = "게자리"; break; 

			// 게자리 22 , 사자자리 7.23 ~ 8.22
			case 7: if(day <= 22) cons = "게자리"; else cons = "사자자리"; break;

			// 사자자리 22 , 처녀자리 8.23 ~ 9.23
			case 8: if(day <= 22) cons = "사자자리"; else cons = "처녀자리"; break;

			// 처녀자리 23 , 천칭자리 9.24 ~ 10.22
			case 9: if(day <= 23) cons = "처녀자리"; else cons = "천칭자리"; break;

			// 천칭자리 22 , 전갈자리 10.23 ~ 11.22
			case 10: if(day <= 22) cons = "천칭자리"; else cons = "전갈자리"; break;

			// 전갈자리 22 , 사수자리 11.23 ~ 12.24
			case 11: if(day <= 22) cons = "전갈자리"; else cons = "사수자리"; break;

			// 사수자리 24 , 염소자리 12.25 ~ 1.19
			case 12: if(day <= 24) cons = "사수자리"; else cons = "염소자리"; break;
			default:
		}
        System.out.printf("%s님의 별자리는 %s입니다.", name, cons);
	}
}

** 하지만 2월 31일이 오류처리가 안된다 **

 
반복문 : 특정 명령어(들)를 조건을 만족하는 동안 계속하여 반복 수행시키고자 할 때에
              for, while, do-while
 
/for문을 사용하는 형식/

for(항1 초기값; 항2 조건식; 항3 증감식){
    반복시킬 명령어(들)
}

항1 : 초기값, 항2 : 조건식, 항3 : 증감식
class D10 { // ~D11 ForTest
	public static void main(String[] args) {
		
		// for문안에 int는 for문에서만 쓰고 끝날시 반환한다
		// i <= 10 , i가 작거나 같을동안
		for (int i = 1; i <= 10; i = i+1){
			System.out.println(i);
		}
	}
}

// 반복문을 거꾸로 10번 출력하기

class D13 {
	public static void main(String[] args) {
	
		for (int i = 10; i >= 1; i = i-1){ 
			System.out.println(i);
		}
	}
}

/*
사용자한테 임의 수 n을 입력받아
1에서 n까지의 홀수를 모두 출력하는 프로그램을 작성 해 봅니다.
*/

import java.util.Scanner;

class D14 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n;

		System.out.print("숫자를 입력하시오.");
		n = sc.nextInt();

/*
		for(int i = 1; i <= n; i = i+2){
			System.out.println(i);
		} 
*/

		//D15 if문 사용
		for(int i = 1; i <= n; i++){
			if(i%2 == 1){
			System.out.println(i);
			}
		} 

	}
}

/*
사용자한테 n을 입력받아서
1~n까지의 짝수의 합, 홀수의 합을 각각 구하여 출력하는 프로그램을 작성 해 봅니다.
*/

import java.util.Scanner;

class D16 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n, one=0, two=0; // 홀수 합 evenSum, 짝수 합 oddSum

		System.out.print("숫자를 입력하시오.");
		n = sc.nextInt();

		for(int i = 1; i <= n; i++){
			if(i%2 == 1){
				one = one + i;
			}else if(i%2 == 0){ // else만 사용해도 된다
				two = two + i;
			}
		}
		System.out.printf("1부터 %d까지의 홀수 합 : %d, 짝수 합 : %d", n, one, two);
	}
}

 
/구구단 출력하기/

class D17 { //GugudanTest
	public static void main(String[] args) {
		System.out.println("2*1=2");
		System.out.println("2*2=4");
		System.out.println("2*3=6");
		System.out.println("2*4=8");
		System.out.println("2*5=10");
		System.out.println("2*6=12");
		System.out.println("2*7=14");
		System.out.println("2*8=16");
		System.out.println("2*9=18");
	}
}

class D17 { //GugudanTest
	public static void main(String[] args) {
		int dan = 7;

		System.out.printf("%d*%d=%d\n", dan, 1, dan*1);
		System.out.printf("%d*%d=%d\n", dan, 2, dan*2);
		System.out.printf("%d*%d=%d\n", dan, 3, dan*3);
		System.out.printf("%d*%d=%d\n", dan, 4, dan*4);
		System.out.printf("%d*%d=%d\n", dan, 5, dan*5);
		System.out.printf("%d*%d=%d\n", dan, 6, dan*6);
		System.out.printf("%d*%d=%d\n", dan, 7, dan*7);
		System.out.printf("%d*%d=%d\n", dan, 8, dan*8);
		System.out.printf("%d*%d=%d\n", dan, 9, dan*9);
	}
}

// for문으로 출력하기

class D19 { //GugudanTest
	public static void main(String[] args) {
		int dan = 7;
		
		for(int i = 1; i <= 9; i++){
			System.out.printf("%d*%d=%d\n", dan, i, dan*i);	
		}
	}
}

import java.util.Scanner;

class D20 { //GugudanTest
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);

		System.out.print("몇 단을 출력할까요?");
		int dan = sc.nextInt();

		for(int i = 1; i <= 9; i++){
			System.out.printf("%d*%d=%d\n", dan, i, dan*i);	
		}
	}
}

class D21 { //ForTest
	public static void main(String[] args) {

		// i가 for문 안에 있기때문에 사용 가능
		for(int i = 1; i <= 3; i = i+1){ // i = i+1
			System.out.println("hello");
		}

		System.out.println("----------"); 

		for(int i = 1; i <= 3; i++){ // i++
			System.out.println("hello");
		}

		System.out.println("----------");
		
		/*
		for(int i = 1; i <= 3; i+1){ // i+1 error: not a statement
			System.out.println("hello");
		}
		*/
	}
}
class D22 { //ForTest
	public static void main(String[] args) {
		// int i; 
		for(i = 1; i <= 3; i = i + 1){
			System.out.println("hello");
		}
		// D23 error: cannot find symbol 
		// int i; 없다면 사용할 수 없다
		System.out.println(i); 
	}
}
// 구구단을 2단부터 9단까지 모두 출력 하도록 합니다

class D24 {
	public static void main(String[] args) {
		for(int dan = 2; dan <= 9; dan++){
			// 중첩반목문
			for(int i = 1; i <= 9; i++){
				System.out.printf("%d*%d=%d\n", dan, i, dan*i);
			}
		// 빈 줄 출력하기
		System.out.println();
		}
	}
}


14:00 ~
 

/*
다음과 같이 동작하는 프로그램을 작성 해 봅니다.

<< 실행 예 >>
별을 몇 개 출력할까요? 7
*******
*/

import java.util.Scanner;

class D26 { // PrintStar
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n;

		System.out.print("별을 몇 개 출력할까요?");
		n = sc.nextInt();

		for(int i = 1; i <= n; i++){
			System.out.print("*");
		}
	}
}

 

/*
<< 실행 예 >>
별을 몇 줄 출력할까요? 3
별을 몇 칸 출력할까요? 5
*****
*****
*****
*/

import java.util.Scanner;

class D27 { // PrintStar
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int rows, cols;

		System.out.print("별을 몇 줄 출력할까요?");
		rows = sc.nextInt();
		System.out.print("별을 몇 칸 출력할까요?");
		cols = sc.nextInt();

		for(int i=1; i <= rows; i++){ // 줄
			for(int j = 1; j <= cols; j++){ // 칸
				System.out.print("*");
			}
			System.out.println(); // 줄바꿈
		}
	}
}

/*
사용자한테 n을 입력받아 n의 약수를 모두 출력하는 프로그램을 작성합니다
*/

import java.util.Scanner;

class D28 { // DivisorsTest
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n;

		System.out.print("n을 입력하시오.");
		n = sc.nextInt();

		for(int i = 1; i <=n; i++){
			if(n%i == 0){
				System.out.printf("%5d", i);
			}
		}

	}
}

/*
사용자한테 n을 입력받고
그 수가 소수인지 판별하는 프로그램을 작성합니다.

n의 약수의 개수를 구하고
그 개수가 2이면 소수 그렇지 않으면 소수가 아니다.
*/
import java.util.Scanner;

class D29 { // PrimeNumberTest
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n, cnt=0; // cnt : 약수의 개수
		
		System.out.print("n을 입력하시오.");
		n = sc.nextInt();

		for(int i = 1; i <=n; i++){
			if(n%i == 0){
				cnt++;
			}			
		} // n의 약수 구하는 반복문
		
		if (cnt == 2){ // cnt가 2면 소수
			System.out.printf("%d는 소수입니다.", n);
		}else{ // 그렇지 않으면 소수가 아니다
			System.out.printf("%d는 소수가 아닙니다.", n);
		}
	}
}

/*
사용자한테 n을 입력받고
그 수가 소수인지 판별하는 프로그램을 작성합니다.

1과 자기자신으로만 나누어지는 수
*/
import java.util.Scanner;

class D30 { // PrimeNumberTest
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n;
		boolean isPrime = true;

		System.out.print("n 을 입력하시오.");
		n = sc.nextInt();
		
		// 2부터 시작하여 n-1,, 6을 2로 나누면 0이 나오니까 소수가 아니다. 
		for(int i=2; i < n; i++){
			if(n%i == 0){
				isPrime = false;
				break; // loop를 돌다 참이면 for문 탈출(if 탈출은 없다)
			} 
		}
		// if(isPrime) isPrime이 true냐 아니냐
		if(isPrime == true){
			System.out.printf("%d는 소수입니다.", n);
		}else{
			System.out.printf("%d는 소수가 아닙니다.", n);
		}
	}
}

import java.util.Scanner;

class D31 { // PrimeNumberTest
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n;

		System.out.print("n을 입력하시오.");
		n = sc.nextInt();

		// 소수가 아니면 i는 n보다 작은가?
		int i = 2; // for 탈출해서 i를 확인하기위해 for문 밖에 써준다

		for (i=2; i<n; i++){
			if(n%i == 0){
				break; // n이 i로 나눠지는게 있다면 탈출해
			}
		} // 만족하지 않을 경우 i가 n과 같아질 때 탈출한다

		// i가 n과 같아졌나요?
		if(i == n){ // i가 n과 같아졌다면 소수이다
			System.out.printf("%d는 소수입니다.", n);
		}else{
			System.out.printf("%d는 소수가 아닙니다.", n);
		}
	}
}

/*
5 ! = 5*4*3*2*1

사용자한테 n을 입력받아서 n!을 구하여 출력하는 프로그램을 작성합니다

<< 실행 예 >>
n을 입력하세요 : 4
4*3*2*1=__
*/

import java.util.Scanner;

class D32 { //FactorialTest
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n, result=1; // 곱해서 누적하려면 초기값 1을 줘야한다
		
		System.out.print("n을 입력하시오.");
		n = sc.nextInt();
		
		//i >= 1 , 1가 1보다 크거나 같을동안
		for(int i = n; i >=1; i--){
			result = result * i; // result *= i 
			System.out.print(i);
			
			if(i != 1){ // i가 1이 아니면 *를 출력해라
			System.out.print("*");
			}
		}	
		System.out.print("=");
		System.out.println(result);
	}
}

 
ㅇㅏㅏ니 이게뭐람~ 아니 제가 수학시간에 눈ㄸㅓ있던적이 없ㅇ,,,,
그냥 ㅠ 하염없ㅇㅣ 눙물이나,,,,

시그마,, 어쩌구,,,,

/*
pdf 선택문과 반복문의 프로그래밍 Exercise 6-1번 문제

i = 1 부터 출발하여 1씩 증가하여 30까지 가라
가는길에 반복해라 (i² + 1) ,, 시그마 : 누적해라!!
*/

class D33 { // SumTest
	public static void main(String[] args) {
		int sum = 0; // 더해서 누적해야하니 0

		// 1씩 증가하여 30까지 가라
		for (int i = 1; i <= 30; i++){
			// (i² + 1) 반복해라
			sum = sum + (i*i) + 1;
		}
		System.out.println("결과 : " + sum);
	}
}

 

중첩 반복문 ,, 저쩌구 ,,,

/*
pdf 선택문과 반복문의 프로그래밍 Exercise 6-2번 문제
*/

class D34 { // SumTest
	public static void main(String[] args) {
		int sum = 0;

		for(int i = 10; i <=30; i++){
			for(int j = 0; j<=5; j++){
				sum = sum + (i*j);				
			}
		}
		System.out.println("결과 : " + sum);
	}
}

 
for(초기값 ; 조건식 ; 증감식){
    반복시키고자 하는 명령어(들)
}
 
<< while문을 사용하는 형식 >>

초기값; // while문이 오기전에 써야함
while(조건식){
    반복시키고자 하는 명령어(들);
    증감식;
}
class D35 { // whileTest
	public static void main(String[] args) {
/*
		for(int i = 1; i <=5; i++){
			System.out.println("hello");
		}
*/
		int i = 1; // 초기값

		while(i <= 5){
			// 조건식에 해당하는것만
			System.out.println("hello");	
			// 증감식이 없다면 무한반복
			i++;
		}
	}
}

/*
사용자한테 구구단 몇 단을 출력할지 물어봐서
그 구구단을 출력하는 프로그램을 while문을 이용하여 작성 해 봅니다.
*/

import java.util.Scanner;

class D36 { // whileTestGugudan
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int dan, i = 1;

		System.out.print("몇 단을 출력하시오?");
		dan = sc.nextInt();
		
		System.out.printf("*** %d단 ***\n", dan);	
        
		// 무한반복 탈출은 Ctrl+c
		while(i <= 9){
			System.out.printf("%d*%d=%d\n", dan, i, dan*i);	
			i++;
		}
	}
}

// boolean문으로 탈출하기

import java.util.Scanner;

class D37 { // whileTestGugudan
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		boolean flag = true; // 계~속 돌아가라
		int dan, i = 1;

		System.out.print("몇 단을 출력하시오?");
		dan = sc.nextInt();
		
		System.out.printf("*** %d단 ***\n", dan);	
		
		// boolean flag 
		while(flag){
			System.out.printf("%d*%d=%d\n", dan, i, dan*i);	
			i++;
			if(i > 9){
				flag = false;
			}
		}
	}
}

// while true로 탈출하기

import java.util.Scanner;

class D37 { // whileTestGugudan
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int dan, i = 1;

		System.out.print("몇 단을 출력하시오?");
		dan = sc.nextInt();
		
		System.out.printf("*** %d단 ***\n", dan);	
		
		// 계~속 돌아라
		while(true){
			System.out.printf("%d*%d=%d\n", dan, i, dan*i);	
			i++;
				if(i > 9){
					break;
				}
		}
	}
}

/*
다음과 같이 동작하는 프로그램을 중첩 while문을 이용하여 작성 해 봅니다.

별을 몇 줄 출력할까요? 3
별을 몇 칸 출력할까요? 5
*****
*****
*****
*/

import java.util.Scanner;

class D39 { // whileTestGugudan
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int rows, cols, i=1, j=1; // 줄 수 rows, 칸 수 cols
		
		System.out.print("별을 몇 줄 출력할까요?");
		rows = sc.nextInt();

		System.out.print("별을 몇 칸 출력할까요?");
		cols = sc.nextInt();


		while (i <= rows){ // i 가 6일 때 탈출해서
			j  = 1 ;
			while (j <= cols){ // j 에서 별이 안찍힌다
				System.out.print("*");			
				j++;
			}
			System.out.println();
			i++;
		}
	}
}

 
<< do~while문을 사용하는 형식 >>

초기값;
do{
    반복시키고자 하는 명령어
    증감식
}while(조건식);
class D41 { // DoWhileTest
	public static void main(String[] args) {

		// 1 ~ 10까지 모든 수 출력
		int i = 1;

		do{
			System.out.println(i);
			i++;
		}while(i<=10);
	}
}

 
- 오늘 학습한 내용을 요약 정리하고 궁금한점 질문하는 시간을 갖도록 합니다.
- 요약정리가 끝난 사람들은 다음을 프로그래밍 해 봅니다.
  pdf "선택문과 반복문"의 LAB 1, 2, 3, 4

/*
LAB 1
*/
/*
LAB 2
*/
/*
LAB 3
*/
/*
LAB 4
*/

 
<< 숙제 >>
사용자한테 이름, 출생연도, 성별을 입력받아 무료암검진 대상자인지
판별하는 프로그램을 작성합니다.
 
<처리 조건>
무료암검진 대상자는 나이가 40세 이상이고 그 해가 홀수연도이면 홀수연도에 태어나고
그 해가 짝수연도이면 짝수연도에 태어난 사람입니다.
또 성별별로 나이별로 검진항목은 다음과 같습니다.
40세 이상 남자이면 위암, 간암
40세 이상 여자이면 위암, 간암, 유방암, 자궁암
50세 이상 남자이면 위암, 간암, 대장암
50세 이상 여자이면 위암, 간암, 대장암, 유방암, 자궁암

/*
사용자한테 이름, 출생연도, 성별을 입력받아 무료암검진 대상자인지
판별하는 프로그램을 작성합니다.

조건) 무료암검진 대상자는 나이가 40세 이상이고
그 해가 홀수연도이면 홀수연도에 태어나고, 
그 해가 짝수연도이면 짝수연도에 태어난 사람이어야 합니다.

 40세 이상 남자이면 위암, 간암
 40세 이상 여자이면 위암, 간암, 유방암, 자궁암
 50세 이상 남자이면 위암, 간암, 대장암
 50세 이상 여자이면 위암, 간암, 대장암, 유방암, 자궁암
*/

import java.util.Scanner;
// GPT : Date 클래스는 낡은 API이므로 대신 java.time 패키지의 LocalDate를 사용하여 현재 날짜를,,
import java.util.Date;

class D0512 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		Date today = new Date();

		// 이름
		String name;
		// 출생연도, 나이계산
		int birthYear, thisYear=today.getYear() + 1900;

		System.out.print("이름 : ");
		name = sc.next();

		System.out.print("츨생연도 : ");
		birthYear = sc.nextInt();
		
		// 나이계산
		int age = thisYear - birthYear;

		System.out.print("성별(남/여) : ");
		char gender = sc.next().charAt(0);

		if(age >= 40 && thisYear%2 == birthYear%2){

			System.out.println("무료암검진 대상자 입니다.");
			System.out.print("암 종류 : ");		

			if(age >= 50){

				if(gender == '남'){
					System.out.println("위암,간암,대장암");
				// gender == '여'
				}else{
					System.out.println("위암,간암,대장암,유방암,자궁암");
				}

			// 그렇지 않다면, 50세 이하일 경우
			}else{

				if(gender == '남'){
					System.out.println("위암,간암");
				// gender == '여'
				}else{			
					System.out.println("위암,간암,유방암,자궁암");
				}
			} // age >= 50 if문 끝
		}else{
			System.out.println("무료암검진 비대상자 입니다.");			
		}
	}
}

** chatGPT의 도움을 받았습니다 ** 

ㅎㅎ,, GPT짱~😊😊

'📖' 카테고리의 다른 글

day 0514 배열_메소드  (0) 2024.05.14
day 0513 반복문_배열  (1) 2024.05.13
day 0509 연산자_선택문  (0) 2024.05.09
day 0508 자료형_연산자  (0) 2024.05.08
day 0507 애플리케이션 기본 구조  (0) 2024.05.07