기초 JAVA 5강 - 반복문

Whatever·2021년 9월 10일
0

기초 JAVA

목록 보기
5/26

반복문

  • for 문
  • while 문
  • do-while 문

for문

  • for(초기화; 조건식; 증감식){} - for문 안의 변수를 초기화; for문이 실행할 조건; 얼마나 반복할지
  • 포함하고 있는 문장들을 정해진 횟수만큼 반복하는 문장

초기화 - 시작값, 조건식 = 끝 값

for(int i = 1; i <= 10; i++){
}

초기화 : 조건식과 증감식에 사용할 변수 초기화
조건식 : 연산결과가 true이면 블럭 안의 내용을 수행
증감식 : 변수를 증가/감소시켜 반복문을 제어

for문 안에서 만들어진 변수는 for문을 벗어나면 사용할 수 없음. for문 안에서만 사용 가능

for(int i = 1; i <= 10; i++){
System.out.println(i +"번째 반복");}

증가
sum = 0;
for(int i = 1; i <= 10; i++){
sum += i;
}
System.out.println(sum);

감소
sum = 0;
for(int i = 10; i >= 1; i--){
sum += i;
}
System.out.println(sum);

//구구단 출력
/*
2 x 1 = 2
2 x 2 = 4
2 x 3 = 6
2 x 4 = 8
...
/

	sum = 0;
	for(int i = 1; i <= 9; i++){
		System.out.println(2 + " * " + i + " = " + i * 2);
	}
	

//구구단 9단 출력

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

//구구단 2단 ~ 9단

	for (int i = 2; i <= 9; i++) {
		for (int j = 1; j <= 9; j++) {
			System.out.println(i + " * " + j + " = " + i * j);
		}
	}
	

//구구단 전체를 가로로 출력해주세요.

	 2 x 1 = 2   3 x 1 = 3   4 x 1 = 4
	 2 x 2 = 4   3 x 2 = 6   4 x 2 = 8
	 2 x 3 = 6   3 x 3 = 9   4 x 3 = 12
	
	

	for (int i = 1; i <= 9; i++) {
	
		for (int j = 2; j <= 9; j++) {
			System.out.print(j + " * " + i + " = " + i * j + "\t");
		}
		System.out.println("\n");
	}

=> \t 를 입력하면 줄을 맞추어 출력됨

while문

  • while(조건식){}
  • 포함하고 있는 문장들을 조건식이 만족하는 동안 반복하는 문장
    - 반복횟수가 정확하지 않은 경우에 주로 사용한다.

int a = 1;
//a에 2씩 곱해서 1000이상이 되려면 몇번을 곱해야 하는가?
int count = 0;
while(a < 1000){
a *= 2;
count++;
System.out.println(count+ " : " + a);
}

do-while문

  • do{}while(조건식);
  • 최소한 한 번의 수행을 보장한다.
    처음에 do를 실행하고 시작, 조건이 참일 때 반복
    => 조건이 거짓이 될 때 반복문에서 빠져나올 수 있다.

숫자 맞추기 게임

	int answer = (int)(Math.random() * 100) + 1;
	int input = 0;
	Scanner s = new Scanner(System.in);
	do{
		System.out.print("1~100사이의 수를 입력해주세요>");
		input = Integer.parseInt(s.nextLine());
		
		if(answer < input){
			System.out.println(input + "보다 작습니다.");
		}else if(answer > input){
		System.out.println(input + "보다 큽니다.");
		}else{
			System.out.println("정답입니다!!");
		}
	}while(input != answer);

이름붙은 반복문

	outer : for(int i = 2; i <= 9; i++){
		for(int j = 1; j <= 9; j++){
			if(j == 5){
				break; //가장 가까운 반복문 하나를 빠져나간다.
				break outer; //outer라는 이름의 반복문을 빠져나간다.
				continue; //가장 가까운 반복문의 현재 반복회차를 빠져나간다.
				continue outer; //outer라는 이름의 현재 반복회차를 빠져나간다.
			}
			System.out.println(i + " * " + j + " = " + i * j);
		}
		System.out.println();
        

BREAK문
break; //가장 가까운 반복문 하나를 빠져나간다.
break outer; //outer라는 이름의 반복문을 빠져나간다.
continue; //가장 가까운 반복문의 현재 반복회차를 빠져나간다.
continue outer; //outer라는 이름의 현재 반복회차를 빠져나간다.

오늘의 과제 : BASE BALL 게임 만들기

나의 답:

        int random100;
	int random10;
	int random1;
	
	do{
		random100 = (int)(Math.random() * 9) + 1;
		random10 = (int)(Math.random() * 9) + 1;
		random1 = (int)(Math.random() * 9) + 1;
		}while(random100 == random10 || random100 == random1 || random10 == random1);
		
	int input100;
	int input10;
	int input1;
	
	int S = 0;
	int B = 0;
	int O = 0;
	
	Scanner s = new Scanner(System.in);
	
		
	do{
		S = 0;
		B = 0;
		O = 0;
		
		System.out.print("백의 자리 숫자를 입력하세요>");
		input100 = Integer.parseInt(s.nextLine());

		System.out.print("십의 자리 숫자를 입력하세요(0 제외)>");
		input10 = Integer.parseInt(s.nextLine());
		
		System.out.print("일의 자리 숫자를 입력하세요(0 제외)");
		input1 = Integer.parseInt(s.nextLine());
	
		if(input1 == input10 || input10 == input100 || input1 == input100){
			System.out.println("숫자 중복! 다시 입력해주세요.");
		}else if(input1 >9 || input10 >9 || input100 >9){
			System.out.println("숫자가 너무 큽니다. 다시 입력해주세요.");
		}else if(input1 == 0 || input10 == 0 || input100 == 0){
			System.out.println("0 말고 다른 숫자를 넣어주세요.");
		};
	
	
	int input = input100 * 100 + input10 * 10 + input1;
	
	
	if(random100 == input100){ //100의 자리
		S++;
	}else if(random100 == input10 || random100 == input1){
		B++; //random100 !== input100
	}
	else if (random100 != input10 && random100 != input1){
		O++; //random100 !== input10, random100 != input1
	}
	
	if(random10 == input10){ //10의 자리
		S++;
	}else if(random10 == input100 || random10 == input1){
		B++; //random100 !== input100
	}else if(random10 != input100 && random10 != input1){
		O++; //random100 !== input10, random100 != input1
	}
	
	if(random1 == input1){ //1의 자리
		S++;
	}else if(random1 == input10 || random1 == input100){
		B++; //random100 !== input100
	}else if(random1 != input10 && random1 != input100){
		O++; //random100 !== input10, random100 != input1
	}	
	
	
	System.out.println(input +" : " + S + "S " + B + "B " + O + "O ");
	}while(S != 3);
	
	int random = random100 * 100 + random10 * 10 + random1;
	System.out.println("성공!!! " + "정답은 " + random + "입니다!!");

오늘의 리뷰:
정신없었다.
베이스볼게임 만들 수 있는 건가 싶었는데 의외로 잘 풀렸다.
더 꼼꼼하게 복습해야겠다.

0개의 댓글

관련 채용 정보