본문 바로가기

배운 책들 정리/자바 완전 정복

자바의 정석 4,5 - 조건문,반복문,배열

1 팁

 

1. 디버깅 모드

 

디버깅 곤충버튼 클릭

 

시작, 끝지점 클릭

 

F11 : 시작

F6 : 누르면서 확인

 

JAVA 버튼 누르면 원상 복귀

 

 

2 복습

스킵

 

 

 

3 이론

 

1. loop문

 

 

2. loop문

 

 

 

 

 

4 실습

1. 무한 반복문 while

 

package j0511;

import java.util.Iterator;
import java.util.Scanner;

public class C0511_02_01 {
	// 10개의 숫자를 입력받아 합계를 출력하시오.
	public static void main(String[] args) {
		 int i=0;
		 while(i<10) {
		System.out.println("i의 값 : "+i);
		 }
		 
		 
//		
//		 do {
//		System.out.println("i의 값 : "+ i);
//		 }while(i<0);
//		
//		 System.out.println("프로그램을 종료합니다.");

	}
}

 

2. do while문 반복

 

package j0511;

import java.util.Iterator;
import java.util.Scanner;

public class C0511_02_01 {
	// 10개의 숫자를 입력받아 합계를 출력하시오.
	public static void main(String[] args) {
		int i = 0;
//		 while(i<10) {
//		System.out.println("i의 값 : "+i);
//
//		 }

		do {
			System.out.println("i의 값 : " + i);
			i++;
		} while (i < 10);

		System.out.println("프로그램을 종료합니다.");

	}
}

 

 

3. 나머지 무한 반복들 _ for(;;) & while(true)

 

package j0511;

import java.util.Iterator;
import java.util.Scanner;

public class C0511_02_01 {
	// 10개의 숫자를 입력받아 합계를 출력하시오.
	public static void main(String[] args) {
		int i = 0;
//		 while(i<10) {
//		System.out.println("i의 값 : "+i);
//
//		 }

		do {
			System.out.println("i의 값 : " + i);
			i++;
		} while (i < 10);

		System.out.println("프로그램을 종료합니다.");

	}
}

//무한반복
//for(;;) {
//	System.out.println("숫자를 입력하세요.");
//	int num = scan.nextInt();
//	if(num==0) {
//		System.out.println("프로그램을 종료합니다.");
//		break;
//	}
//}

//무한반복
//while(true) {
//	System.out.println("숫자를 입력하세요.");
//	int num = scan.nextInt();
//	if(num==0) {
//		//프로그램을 종료
//		break; //반복문을 종료는 break
//	}
//}

//int i=10;
////while(i<0) {
////	System.out.println("i의 값 : "+i);
////}
//
//do {
//	System.out.println("i의 값 : "+ i);
//}while(i<0);
//
//System.out.println("프로그램을 종료합니다.");

 

4. if-switch-while 사칙연산 프로그램

 

package j0511;

import java.util.Iterator;
import java.util.Scanner;

public class C0511_02 {
	// 10개의 숫자를 입력받아 합계를 출력하시오.
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);

		// 실습 4 - 사칙연산
		char ch = ' ';
		int input = 0, num1 = 0, num2 = 0;

		while (true) {
			System.out.println("[사칙연산 프로그램]");
			System.out.println("1. 더하기 ");
			System.out.println("2. 빼기 ");
			System.out.println("3. 곱하기 ");
			System.out.println("4. 나누기 ");
			System.out.println("0. 종료");
			System.out.println("원하는 번호를 입력하세요");
			input = scan.nextInt(); // 원하는 번호 입력 받음.

			if (input == 0) {
				System.out.println("종료합니다.");
				break;
			}
//			if break; 도 가능함

			// 숫자를 입력
			System.out.println("첫번째 숫자를 입력하세요");
			num1 = scan.nextInt();
			System.out.println("두번째 숫자를 입력하세요");
			num2 = scan.nextInt();

			switch (input) {
			case 1:
				System.out.println(num1 + "+" + num2 + "=" + (num1 + num2));
				break;
			case 2:
				System.out.println(num1 + "-" + num2 + "=" + (num1 - num2));
				break;
			case 3:
				System.out.println(num1 + "*" + num2 + "=" + (num1 * num2));
				break;
			case 4:
				System.out.println(num1 + "/" + num2 + "=" + (num1 / num2));
				break;

			}

			// 무한반복
//		while(true) {
//		System.out.println("프로그램실행");		
//		}
//	int i=10;
//	while(i<0) {
//		System.out.println("i의 값: "+i);
//	}
		}
	}
}

 

 

5. 특정 조건까지 반복 : if & while & break;

 

package j0511;

public class C0511_03 {

	public static void main(String[] args) {
		// 실습 1
		int i = 0, sum = 0;
		while (true) {
			if (sum > 100) {
				break; // while,for문 종료할 때 : break문
			}
			sum = sum + i; // i=0, sum = 0, i=1, sum=1
			i++;
			System.out.println("sum 값 : " + sum + "\n" + "i 값 : " + i);
			System.out.println("if문 실행중");
		}
		System.out.println("if문 나왔음");
		System.out.println("sum 값 : " + sum + "\n" + "i 값 : " + i);

	}
}

////실습 2
//int i=0, sum=0;
//
//for (i = 0;;) {
//if (sum>10) {
//	break;
//}
//i++;
//sum+=i;
//}
//System.out.println("i의 결과값 :"+(i));
//System.out.println("sum의 결과값 :"+sum);

 

6. ;; 무한 반복 & break 활용

 

package j0511;



public class C0511_03 {
	
	public static void main(String[] args) {
//		실습 2
		int i=0, sum=0;
		
		for (i = 0;;) {
			if (sum>10) {
				break;
			}
			i++;
			sum+=i;
		}
		System.out.println("i의 결과값 :"+(i));
		System.out.println("sum의 결과값 :"+sum);
	}
}
//// 실습 1
//int i = 0, sum = 0;
//while (true) {
//	if (sum>100) {
//		break; // while,for문 종료할 때 : break문
//	}
//	sum = sum+i; //i=0, sum = 0, i=1, sum=1
//	i++;
//	System.out.println("sum 값 : "+sum+"\n"+"i 값 : "+i);
//	System.out.println("if문 실행중");
//}
//System.out.println("if문 나왔음");
//System.out.println("sum 값 : "+sum+"\n"+"i 값 : "+i);

 

7. continue _ for&if 조건 1

 

package j0511;

import java.util.Iterator;

public class C0511_04 {

	public static void main(String[] args) {
		
		// 실습3
		for (int i = 0; i <= 10; i++) {
			if (i%2==1) {
				continue;
			}
			System.out.println(i);
		}
	}
}

 

 

8. continue _ for&if 조건 2 스킵

 

package j0511;

import java.util.Iterator;

public class C0511_04 {

	public static void main(String[] args) {
		
		// 실습3
		for (int i = 0; i <= 10; i++) {
//			if (i%2==1) { //1
			if (i==5) { //2
				continue;
			}
			System.out.println(i);
		}
	}
}

 

9. loop:for문

 

package j0511;

import java.util.Iterator;

public class C0511_05 {

	public static void main(String[] args) {
		//실습1
		loop:for (int i = 2; i < 10; i++) {
			for (int j = 1; j < 10; j++) {
				if(j==6) break loop;
				System.out.printf("%d*%d=%d\n",i,j,(i*j));
			} // for문 바로 빠져오기
			System.out.println();
		}
	}
}

// 살짝 어려움
// loop:for 중첩 반복문에서 바깥쪽 반복문까지 한번에 빠져나오기
// 가장 바깥쪽 길을 지정하는 것과 같음
// j가 6일 때 바로 빠져나옴

 

10. while문 & switch문 & break문 & loop문

 

package j0511;

import java.util.Iterator;
import java.util.Scanner;

public class C0511_05 {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int input = 0, num1 = 0, num2 = 0, sum = 0;
		

		while (true) { // 무한반복
			System.out.println("1. 더하기");
			System.out.println("2. 곱하기");
			System.out.println("0. 종료");
			System.out.println("----------");
			System.out.println("원하는 번호를 입력하세요.");
			input = scan.nextInt();
			if (input == 0) {
				System.out.println();
				break;
			} // 프로그램 종료

			switch (input) {
			case 1:
				loop:while (true) {
					System.out.println("1번 숫자 입력하세요. (0.이전 페이지, 1:종료)");
					num1 = scan.nextInt();
					if(num1==0) break;  // 바로 이전 페이지
					if(num1==1) break loop; // 바로 종료
					System.out.println("2번 숫자 입력하세요");
					num2 = scan.nextInt();
//					System.out.println(num1+"+"+num2+"="+(num1+num2));
					System.out.printf("%d+%d=%d \n", num1, +num2, (num1 + num2));
					break;

				} // while문
				
			}// switch문
//			loop:break;

		} // while문 메뉴
	}
}

 

11. 배열 1

package j0511;

import java.util.Iterator;
import java.util.Scanner;

public class C0511_07 {

	public static void main(String[] args) {

		int[] num;
		num = new int[5];
		int[] score = new int [5];
		System.out.println(num);
		
		
		
		
	}
}

 

12. 배열 2 (0~5까지)

 

package j0511;

import java.util.Iterator;

public class C0511_08 {

	public static void main(String[] args) {

//		2.실습
//		int 배열
		int[] num = new int[5];
		for (int i = 0; i < num.length; i++) {
			num[i] = i+1;
			System.out.println(i+":"+(i+1));
		}
		
		
		for (int i = 0; i < num.length; i++) { //num의 배열의 크기 만큼
			System.out.println(num[i]);
			
		}
		
	}
}

 

12. 배열 3 (0~100까지)

 

package j0511;

import java.util.Iterator;

public class C0511_08 {

	public static void main(String[] args) {

//		2.실습
//		int 배열
		int[] num = new int[100];
		
		for (int i = 0; i < num.length; i++) {
			num[i] = i + 1;
			System.out.println(i + ":" + (i + 1));
		}

		for (int i = 0; i < num.length; i++) { // num의 배열의 크기 만큼
			System.out.println(num[i]);

		}

	}
}

 

 

13. 배열 4 연습 (그냥 넘겨도 됨)

 

package j0511;

import java.util.Iterator;
import java.util.Scanner;

public class C0511_09 {

	public static void main(String[] args) {
		// 랜덤숫자맞추기 (값 입력 받아)
		// 10번 기회를 주어지고 정답 확인 시 입력한 번호를 출력
		int input = 0; // 입력받은 변수
		int random = 0; // 랜덤 변수
		int count = 0; // 도전 횟수

		Scanner scan = new Scanner(System.in);

		while (true) {

			System.out.println("1. 랜덤 숫자 생성");
			System.out.println("2. 시작하기");
			System.out.println("3. 종료");

			System.out.println("번호를 입력 하세요");
			input = scan.nextInt();

			if (input == 3) {
				System.out.println("종료합니다.");
				break;
			}
			
			switch (input) {

			case 1:
				System.out.println("랜덤 숫자 생성이 되었습니다.");
								
				break;
				
			case 2:
				System.out.println("랜덤 숫자를 맞추세요");
				input = scan.nextInt();
				if (input == 0) {
					
				}
				
				break;
				

			}

		}

	}
}

 

14. 배열 5 적용 전 - 학생 성적 자동 입력 (배열 이용 안할 경우)

 

package j0511;

import java.util.Iterator;
import java.util.Scanner;

public class C0511_10 {

	public static void main(String[] args) {

		// 성적처리 프로그램
		// 1.이름 2.국어. 3.영어. 4.수학 합계, 평균 자동으로 들어갈 수 있도록 함
		String name = "";
		int kor = 0;
		int eng = 0;
		int math = 0;
		int total = 0;
		double avg = 0;
		int[] range = new int[3];

		Scanner scan = new Scanner(System.in);

		while (true) {

			System.out.println("이름을 입력하세요");
			name = scan.nextLine();

			System.out.println("국어 성적을 입력하세요");
			kor = scan.nextInt();

			System.out.println("영어 성적을 입력하세요");
			eng = scan.nextInt();

			System.out.println("수학 성적을 입력하세요");
			math = scan.nextInt();

			// 자동계산
			total = kor + eng + math;
			avg = total / 3.0;
			
			

			// 출력

			System.out.printf("이름\t국어\t영어\t수학\t합계\t평균 \n");
			System.out.println("---------------------------");
			System.out.printf("%s\t%d\t%d\t%d\t%d\t%.2f \n", name, kor, eng, math, total, avg);
		}
	}
}

 

15. 배열 5 적용 후 - 학생 성적 자동 입력 (배열 이용 할 경우) // 이름,국영수만

 

package j0511;

import java.util.Iterator;
import java.util.Scanner;

public class C0511_10 {

	public static void main(String[] args) {

		// 성적처리 프로그램
		// 1.이름 2.국어. 3.영어. 4.수학 합계, 평균 자동으로 들어갈 수 있도록 함
		String[] name = new String[3];
		int[] kor = new int[3];
		int[] eng = new int[3];
		int[] math = new int[3];
		int[] total = new int[3];
		double[] avg = new double[3];

		int[] range1 = new int[3];

		Scanner scan = new Scanner(System.in);

		for (int i = 0; i < name.length; i++) {
			System.out.println("이름 입력하세요");
			name[i] = scan.next();
			System.out.println("국어점수 입력하세요");
			kor[i] = scan.nextInt();
			System.out.println("영어점수 입력하세요");
			eng[i] = scan.nextInt();
			System.out.println("수학점수 입력하세요");
			math[i] = scan.nextInt();
		}

		for (int i = 0; i < name.length; i++) {

			// 출력
			System.out.println("이름 \t 국어 \t영어 \t수학");
			System.out.println("------------------------------------------------------------------");
			System.out.printf("%s \t %d \t %d \t %d \t \n", name[0],kor[0],eng[0],math[0]);
//			,total[0],avg[0]
		}

	}
}

 

16. 배열 5 적용 후 - 학생 성적 자동 입력 (배열 이용 할 경우) // 이름,국영수만

 

 

package j0511;

import java.util.Iterator;
import java.util.Scanner;

public class C0511_10 {

	public static void main(String[] args) {

		// 성적처리 프로그램
		// 1.이름 2.국어. 3.영어. 4.수학 합계, 평균 자동으로 들어갈 수 있도록 함
		String[] name = new String[3];
		int[] kor = new int[3];
		int[] eng = new int[3];
		int[] math = new int[3];
		int[] total = new int[3];
		double[] avg = new double[3];

		int[] range1 = new int[3];

		Scanner scan = new Scanner(System.in);

		for (int i = 0; i < name.length; i++) {
			System.out.println("이름 입력하세요");
			name[i] = scan.next();
			System.out.println("국어점수 입력하세요");
			kor[i] = scan.nextInt();
			System.out.println("영어점수 입력하세요");
			eng[i] = scan.nextInt();
			System.out.println("수학점수 입력하세요");
			math[i] = scan.nextInt();

			total[i] = kor[i] + eng[i] + math[i];
			avg[i] = total[i] / 3.0;
		}

		for (int i = 0; i < name.length; i++) {

			// 출력
			System.out.println("이름 \t 국어 \t영어 \t수학 \t합계 \t평균");
			System.out.println("------------------------------------------------------------------");
			System.out.printf("%s \t %d \t %d \t %d \t %d \t %.2f \n", name[0], kor[0], eng[0], math[0], total[0],
					avg[0]);
//			,total[0],avg[0]
		}

	}
}

//		while (true) {
//
//			System.out.println("이름을 입력하세요");
//			name = scan.nextLine();
//
//			System.out.println("국어 성적을 입력하세요");
//			kor = scan.nextInt();
//
//			System.out.println("영어 성적을 입력하세요");
//			eng = scan.nextInt();
//
//			System.out.println("수학 성적을 입력하세요");
//			math = scan.nextInt();
//
//			// 자동계산
//			total = kor + eng + math;
//			avg = total / 3.0;

// 출력

//			System.out.printf("이름\t국어\t영어\t수학\t합계\t평균 \n");
//			System.out.println("---------------------------");
//			System.out.printf("%s\t%d\t%d\t%d\t%d\t%.2f \n", name, kor, eng, math, total, avg);
//

 

17. 배열 6 - 배열의 주소를 따라간다.

 

package j0511;

import java.util.Iterator;
import java.util.Scanner;

public class C0511_12 {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int num = 5;
		int num2 = num;
		num2 = 10;
		System.out.println(num);
		System.out.println(num2);
		System.out.println("--------------");

		int[] input = new int[3];
		input[0] = 5;
		
		//주소 값 복사
		
		int[] input2 = input;
		System.out.println(input2[0]);
		input2[0] = 20;
		System.out.println(input2[0]);
		System.out.println(input[0]); //주소값을 저장
	}
}

 

17. 배열 6 - 배열의 주소를 따라간다.2

 

package j0511;



public class C0511_13 {

	public static void main(String[] args) {
		int a = 10;
		int b = 20;
		int c = 0;
		// a와 b의 값을 서로 바꿔서 저장을 하시오.
		c = a;
		a = b;
		b = c;

	}
}

 

5 문제풀이

1. 구구단 만들기  - 가로 정렬

 

package j0511;

import java.util.Iterator;

public class C0511_01 {
	// 10개의 숫자를 입력받아 합계를 출력하시오.
	public static void main(String[] args) {
		
//		문제 1 구구단
		for (int i = 1; i < 10; i++) {
			System.out.printf("\n [%d단] \n",i);
			for (int j = 1; j < 10; j++) {		
				System.out.print(i+"*"+j+"="+(i*j)+" ");
			}
			System.out.println("\n");
		}
		
//		// 문제 2 구구단을 출력하시오. 가로 세로 정렬해서
//		for(int i=2;i<=9;i++) {
//			System.out.printf("[%d단]\t",i);
//		}
//		System.out.println();
//		for(int i=1;i<=9;i++) {
//			for(int j=2;j<=9;j++) {
//				System.out.printf("%d*%d=%d\t",j,i,i*j);
//			}
//			System.out.println();
//		}		
		
		
		
	}
}

 

 

2. 구구단 만들기 - 가로 세로 정렬

 

package j0511;

import java.util.Iterator;

public class C0511_01 {
	// 10개의 숫자를 입력받아 합계를 출력하시오.
	public static void main(String[] args) {
		
////		문제 1 구구단
//		for (int i = 1; i < 10; i++) {
//			System.out.printf("\n [%d단] \n",i);
//			for (int j = 1; j < 10; j++) {		
//				System.out.print(i+"*"+j+"="+(i*j)+" ");
//			}
//			System.out.println("\n");
//		}
		
		// 문제 2 구구단을 출력하시오. 가로 세로 정렬해서
		for(int i=2;i<=9;i++) {
			System.out.printf("[%d단]\t",i);
		}
		System.out.println();
		for(int i=1;i<=9;i++) {
			for(int j=2;j<=9;j++) {
				System.out.printf("%d*%d=%d\t",j,i,i*j);
			}
			System.out.println();
		}		
		
		
		
	}
}

 

3. 구구단 만들기 - 가로 세로 정렬 - for,if // continue 사용

 

package j0511;

import java.util.Iterator;

public class C0511_04 {

	public static void main(String[] args) {

//		문제 1. 5단만 빼고 출력

//		for (int i = 1; i < 10; i++) {
		for (int i = 2; i < 10; i++) {
			if (i % 2 != 0)
				continue;
			for (int j = 1; j < 10; j++) {
//				if (j != 5)  // 문제1 5단만 빼고 출력
				if (j % 2 == 0) // 문제2 짝수단만 출력
					continue;
//					System.out.println(i + "*" + j + "=" + (i*j)+"\t");
				System.out.printf("%d*%d=%d\t", i, j, (i * j));
			}
			System.out.println();
		}

	}
}

////실습 2
//int i=0, sum=0;
//
//for (i = 0;;) {
//if (sum>10) {
//	break;
//}
//i++;
//sum+=i;
//}
//System.out.println("i의 결과값 :"+(i));
//System.out.println("sum의 결과값 :"+sum);

//// 실습3
//for (int i = 0; i <= 10; i++) {
////	if (i%2==1) { //1
//	if (i==5) { //2
//		continue;
//	}
//	System.out.println(i);
//}

 

4. 랜덤 숫자 맞추기 프로그램

 

package j0511;

import java.util.Iterator;
import java.util.Scanner;

public class C0511_06 {

	public static void main(String[] args) {
//		숫자맞추기 프로그램
//		랜덤숫자를 만들어서 출력하세요
//		1부터 100까지의 있는 숫자 번호를 생성
		int input = 0, random = 0, n1 = 0, n2 = 0;

		Scanner scan = new Scanner(System.in);

		while (true) {
			System.out.println("[숫자맞추기 프로그램]");
			System.out.println("1. 랜덤숫자 생성");
			System.out.println("2. 숫자맞추기 게임");
			System.out.println("3. 종료");
			System.out.println("----------------");
			System.out.println("원하는 번호를 입력하세요");
			input = scan.nextInt();
			if (input == 3) {
				System.out.println("종료합니다.");
				break;
			}

			switch (input) {
			case 1:
				random = (int) (Math.random() * 100) + 1;
				System.out.println("랜덤숫자 : " + random);
				System.out.println("랜덤숫자가 생성 되었습니다!");
				break;
			case 2:
				System.out.println("숫자 1~100까지 입력하세요");
				input = scan.nextInt();
				if (input == random) {
					System.out.println("정답입니다.");
					break;
				} else if (input != random) {
					System.out.println("오답입니다.");
					break;
				} else {
					System.out.println("이상합니다.");
					break;
				}

			}

		}
	}
}

 

5. 랜덤 숫자 맞추기 프로그램 2

 

package j0511;

import java.util.Iterator;
import java.util.Scanner;

public class C0511_06 {

	public static void main(String[] args) {
//		숫자맞추기 프로그램
//		랜덤숫자를 만들어서 출력하세요
//		1부터 100까지의 있는 숫자 번호를 생성
		int input = 0, random = 0, count = 0;

		Scanner scan = new Scanner(System.in);

		while (true) {
			System.out.println("[숫자맞추기 프로그램]");
			System.out.println("1. 랜덤숫자 생성");
			System.out.println("2. 숫자맞추기 게임");
			System.out.println("3. 종료");
			System.out.println("----------------");
			System.out.println("원하는 번호를 입력하세요");
			input = scan.nextInt();

			if (input == 3) {
				System.out.println("종료합니다.");
				break;
			}

			switch (input) {
			case 1:
				random = (int) (Math.random() * 100) + 1;
				System.out.println("랜덤숫자 : " + random);
				System.out.println("랜덤숫자가 생성 되었습니다!");
				break;

			case 2:
				while (true) {
					count++;
					if (count > 3) {
						System.out.println("3번 도전했습니다.");
						System.out.println("정답 : " + random);
						break;
					} // if문 마지막
					System.out.printf("숫자 1~100까지 입력하세요 (%d번째 도전) : ", count);
					input = scan.nextInt();

					if (input == random) {
						System.out.println("정답입니다.");
						break;
					} else if (input != random) {
						System.out.println("오답입니다.");

					} else {
						System.out.println("이상합니다.");

					} // else 마지막
					if (count == 3) {
						System.out.println("3번의 기회가 모두 소진되었습니다.");
						System.out.println("정답은 " + random + "입니다.");
						break;
						
					} // if문 마지막

				} // for문 마지막
				break;
			} // case while문
		} // while문 마지막
	}
}

 

6. 배열 문제 2

 

package j0511;

import java.util.Iterator;
import java.util.Scanner;

public class C0511_07 {

	public static void main(String[] args) {

//		1 실습
//		1. 배열 생성
		int sum = 0;
		int[] num;
		num = new int[5];
//		int[] score = new int[5];
		String[] name = new String[100];
		double[] avg = new double[50];

//		2. 값 넣기
		int[] score = new int[10];
//		score[0] = 1;
//		score[1] = 2;
//		score[2] = 3;

		for (int i = 0; i < score.length; i++) {
			score[i] = i + 1;
			System.out.println((i) + ":" + (i + 1)); // 알고리즘 찾기

		}

//		score 1부터~10까지 출력
		System.out.println(num);
		System.out.println(score[1]);

	}
}

 

7. 배열 문제 3

 

package j0511;

import java.util.Iterator;

public class C0511_08 {

	public static void main(String[] args) {
//		문제 1
//		10개 배열 생성 후 랜덤숫자 1-10까지 숫자 입력해서 출력
		int[] num = new int[10]; // 저장할 수 있는 공간
		for (int i = 0; i < num.length; i++) {
			num[i] = (int) (Math.random() * 10) + 1;
			System.out.println(num[i]);
		}

	}
}

 

8. 배열 문제 4 - 랜덤 숫자 맞추기 [10번의 기회] - 배열 사용해서 

 

package j0511;

import java.util.Iterator;
import java.util.Scanner;

public class C0511_09_ex {

	public static void main(String[] args) {
		// 랜덤숫자맞추기 (값 입력 받아)
		// 10번 기회를 주어지고 정답 확인 시 입력한 번호를 출력

		int input = 0; // 입력받은 변수
		int random = 0; // 랜덤 변수
		int count = 0; // 도전 횟수
		int[] num = new int[10];
		Scanner scan = new Scanner(System.in);

		random = (int) (Math.random() * 100) + 1;
		System.out.println("랜덤 숫자 : " + random);

//		int i = 0;

		while (true) {
			// 10번 도전시
			if (count >= 10) {
				System.out.println("10번 도전했습니다. 프로그램 종료합니다.");
				break;
			}
			// 도전번호 입력
			System.out.println((count + 1) + "번째 숫자를 입력하세요");
			num[count] = scan.nextInt();
			if (num[count] == random) {
				System.out.println("정답입니다");
				break;
			} else {
				System.out.println("오답입니다. 다시 도전하세요");
			}
			count++;
		}//while문 마지막
		
		
		// 입력한 숫자 출력
		System.out.println("정답 : " + random);
		System.out.print("입력한 숫자 : ");
		for (int i = 0; i < num.length; i++) {
			System.out.print(num[i]);
			if (i != num.length - 1) {
				System.out.print(",");
			}

		}//for문 마지막

	}
}

 

9. 배열 문제  끝판왕 - case&switch&while 등등

 

package j0511;

import java.util.Iterator;
import java.util.Scanner;

public class C0511_11 {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);

		int[] num = new int[0];
		int n1 = 0, count = 0, input = 0; // 번호 선택, 입력된 학생 수

		String[] name = new String[0];
		int[] kor = new int[0];
		int[] eng = new int[0];
		int[] math = new int[0];
		int[] total = new int[0];
		double[] avg = new double[0];

//		1.성적입력
//		2.성적출력
//		3.성적수정
//		4.등수처리
//		0.프로그램 종료

		while (true) {
			System.out.println("성적처리 프로그램");
			System.out.println("1.성적입력");
			System.out.println("2.성적출력");
			System.out.println("3.성적수정");
			System.out.println("4.등수처리");
			System.out.println("0.프로그램 종료");

			System.out.println("\n 번호를 입력하세요");
			input = scan.nextInt();

// 종료 버튼			
			if (input == 0) {
				System.out.println("종료합니다.");
				break;
			}

			switch (input) {

// 1. 성적 입력
			case 1:
				for (int i = count; i < name.length; i++) { // count 왜 들어가지?
					System.out.println("이름을 입력하세요. (0.이전페이지이동)");
					name[i] = scan.next();

// 0번 입력시 이전 페이지로
					if (name[i].equals("0")) {
						System.out.println("돌아갑니다.");
						System.out.println();
						break;
					}
// 그 외 바로 성적 입력					
					System.out.println("국어 성적 입력");
					kor[i] = scan.nextInt();

					System.out.println("영어 성적 입력");
					eng[i] = scan.nextInt();

					System.out.println("수학 성적 입력");
					math[i] = scan.nextInt();

					// 자동계산
					total[i] = kor[i] + eng[i] + math[i];
					avg[i] = total[i] / 3.0;
					count++; // 이것도 왜 있지?
				} // for
				
				break; // switch

// 2. 성적 출력				

			case 2:
				System.out.println("성적을 출력합니다.");
				System.out.println("이름 \t 국어 \t영어 \t수학 \t합계 \t평균");
				System.out.println("------------------------------------------------------------------");

				for (int i = 0; i < num.length; i++) {
					System.out.printf("%s \t %d \t %d \t %d \t %d \t %.2f \n", name[0], kor[0], eng[0], math[0], total[0],
							avg[0]);

				}
				break;

// 3. 성적 수정			

			case 3:
				System.out.println("뭐냐");

// 4. 등수 처리				

			case 4:
				System.out.println("뭐냐");

			} // switch

		} // while
	}
}

 

 

 

 

* 핵심

- scanner 활용법

- loop  활용법

- continue, break 활용법

- 배열은 무조건 for문을 이용한다 !

- for, while, do-while문

 

 

 

* 0511 실습 링크

 

 

GitHub - RosePaku/bigdata_java: 빅데이터_자바의_정석

빅데이터_자바의_정석. Contribute to RosePaku/bigdata_java development by creating an account on GitHub.

github.com

 

728x90
반응형
LIST