오늘보다 더 나은 내일의 나에게_

Java 반복문 본문

JAVA

Java 반복문

chan_96 2022. 1. 13. 06:15
728x90

반복문

:어떤 조건에 만족할 때까지 또는 특정 횟수만큼 같은 처리를 반복하여 실행하는 구조

 

while문

:정확하게 몇 번 반복해야 할지 정해지지 않은 경우에 사용
:몇 번 반복해야 하는지 정해져 있지 않기 때문에 반복문을 수행할 조건을 지정해줘야 함(조건은 항상 논리형)

while(조건식) {
실행 문장
}
다음 문장

 

do~while문

:while문과 동일하지만 지정된 명령 실행 후 조건 확인 시 true인 경우 다시 지정된 명령 실행 , false가 되는 순간 다음 명령 실행(조건을 확인하지 않고 먼저 실행 문장을 실행함)

do {
실행 문장
} while(조건)

 

예제 1 키보드로부터 입력받은 수가 10보다 작은 때만 계속 숫자를 입력할 수 있는 프로그램을 작성(while문 / do-while문 모두 작성)
더보기
더보기

while문 1번


while문 2번




do-while문

 

예제 2 키보드로부터 입력한 숫자를 누적하여 누적 결과를 출력해 주는 프로그램을 작성
(단, -1을 입력한 경우 프로그램 종료)(while문/ do-while문 모두 작성)
더보기
더보기

while문


do~while문

 

예제 3 키보드로부터 입력한 숫자를 입력한 숫자를 입력받아 홀수와 짝수가 각각 몇 개 입력되었는지 출력/(1-을 입력한 경우는 종료)
예제 4 다이어트 프로그램 만들기
사용자가 입력한 목표 몸무게가 될 때까지 각 주차별로 감량한 몸무게를 입력받고 목표 몸무게가 되면 입력을 중단하는 프로그램 작성
예제 4-1 현재 몸무게와 목표 몸무게를 입력받고 주차 별 감량 몸무게를 입력
예제 4-2 주차 별 감량 몸무게를 입력받을 시 현재 몸무게에서 감량 몸무게를 뺀 후 결과를 출력
예제 4-3 현재 몸무게가 목표 몸무게보다 낮거나 같아진 경우 최종 몸무게와 축하한다는 문구를 출력하고 입력을 중단



예제 5 사용자가 입력한 아이디가 "smhrd"이고 비밀번호가 "1234"인 경우만 로그인될 수 있도록 하고 그렇지 않은 경우에는 로그인할 수 없는 로그인 프로그램 작성

예제 5-1 
아이디와 비밀번호를 각각 입력받고 아이디가 "smhrd"이고 비밀번호가 "1234"인 경우 "로그인 성공" 문구를 출력하고 하나라도 틀린 경우에는 "로그인 실패"를 출력
예제 5-2  로그인이 실패했을 경우에는 계속해서 아이디와 비밀번호를 입력하고 로그인이 성공하면 프로그램을 종료
예제 5-3 아이디나 비밀번호가 틀렸을 경우 "계속하시겠습니까?"라는 문장을 출력하고 사용자가 "Y"를 입력하면 입력을 계속하고 "N"을 입력하면 입력을 중단
예제 5-4 아이디/비밀번호 입력을 3번 이상 틀렸을 때 "본인인증을 해주세요" 문구를 출력하고 프로그램을 종료
예제 6 정수 2개의 덧셈 결과와 뺄셈 결과를 출력해주는 프로그램 작성

예제 6-1 정수 2개를 입력받고 연산자를 선택받으면 해당 연산 결과를 출력

예제 6-2 연산 결과 출력 후 "다시 실행하시겠습니까?(Y/N)" 문구를 출력 후 사용자가 "Y" 문구를 출력 후 사용자가 "Y"를 입력하면 다시 입력받고 "N"을 입력하면 프로그램을 종료

for문

: 정확하게 몇 번 반복해야 할지 정해진 경우에 사용
: 몇 번 반복해야 하는지 정해져 있기 때문에 인자를 잘 적어서 반복 횟수를 지정해줘야 한다

for(초기화 구문;조건식;반복 후 구문){
실행 문장
}
다음 문장

초기화 구문 => 반복문에서 사용할 변수 선언 / 반복문 실행 시 맨 처음 딱 한 번만 실행
조건식 => 실행 문장을 실행할 조건 / 실행 문장 실행 전 매번 확인
반복 후 구문 => 실행 문장을 실행한 다음 실행 / 반복 조건 확인 전 매번(맨 처음 제외) 실행

 

예제 1 for문을 사용하여 21에서 57까지 출력 / for문을 사용하여 96에서 53까지 출력

for문을 사용하여 21에서 57까지 수 중 홀수만 출력
예제 2 정수 1개를 입력받아 1부터 입력받은 정수까지 차례대로 출력해주는 프로그램을 작성

 

예제 3 100 이하 두 개의 정수를 입력받아 작은 수부터 큰 수까지 차례대로 출력해주는 프로그램을 작성
예제 4 for문을 사용해서 구구단 2단을 출력
예제 5 for문 예제 입력받은 정수의 약수를 구하세요
예제 6 1~50까지의 숫자로 369게임 만들기

 


이중 for문

for(int j = 1; j <= 3; j++){ System.out.print("j : " + j + " "); for(int i = 1; i <= 3; i++){ System.out.println("i : " + i + " "); } System.out.println("=========="); }
예제 7 이중 for문 예제 구구단 2단 ~ 9단까지 출력
예제 8 다음과 같은 별 모양으로 출력
예제 9 다음과 같은 별 모양으로 출력

응용 입력받아 별 층수대로 출력  

예제 10 다음과 같은 별 모양으로 출력
예제 11 다음과 같은 별 모양으로 출력

 

이중 for문 실행 순서

for(int i=1; i<=2;i++) {
	for(int j=1; j<=i;j++) {
		System.out.println();
	}
}
//  1_int i=1 , 2_ i<=2, 3_i++, 4_int j=1, 5_j<=i, 6_j++, 7_System.out.println()


1-2-4-5-7-6-5-3-2-4-5-7-6-5-7-6-5-3-2

예제 3 (77*1) + (76*2) + (75*3) +... + (1*77)을 계산하여 결과를 출력
더보기
더보기

이중 for문 사용 시 코드 매우 복잡!(단순 for문사용)

예제 4 for문을 사용하여 A~Z까지 출력
더보기
더보기

A의 아스키코드 - 65
Z의 아스키코드 - 90

강제 형변환
변수 자료형 char로 선언

 

과제__반복문

1. 1~10까지 정수 중 랜덤으로 2개를 뽑아 다음과 같이 출력
2. 사용자가 값을 입력한 후 값이 답과 일치한 경우 "Success"를 출력하고 일치하지 않을 경우 "Fail"을 출력
3. 결과를 출력한 후 "계속하시겠습니까"를 출력하여 "Y"를 입력하면 계속해서 게임을 진행하고 "N"을 입력하면 게임을 중단
4. 사용자가 답을 입력한 결과가 "Success"인 경우에는 새로운 숫자를 뽑아서 문제를 출력하고 "Fail"인 경우에는 기존에는 기존의 문제를 다시 출력
5. 프로그램 종료 시 사용자가 답을 맞힌 횟수와 틀린 횟수를 출력

더보기
더보기
//랜덤수를 뽑을 수 있게 도와주는 도구
Random rd = new Random();
Scanner sc = new Scanner(System.in);

// rd.nextInt(10) : 0~9 수를 랜덤으로 뽑아줌
// rd.nextInt(10)+1 : 0->1 , 9->10
int num1 = rd.nextInt(10)+1;
int num2 = rd.nextInt(10)+1;
int o = 0; // 맞춘개수
int x = 0; // 틀린개수

while(true) {
	System.out.printf("%d + %d = ", num1, num2);
	int input = sc.nextInt(); // 사용자가 답을 입력하는 부분
	
	if(input==num1+num2) { //맞는답을 입력한경우
		System.out.println("Success!");
		o++;
		num1 = rd.nextInt(10)+1;
		num2 = rd.nextInt(10)+1;
		
	}else {//틀린답을 입력한 경우
		System.out.println("Fail!");
		x++;
	}

	System.out.print("계속하시겠습니까?");
	String con = sc.next();
	
	if(con.equals("N")) {
		System.out.println("종료!");
		break; //가장 가까운 반복문을 나가게 하는 키워드
	}
}
System.out.println("맞춘 개수 : " + o);
System.out.println("틀린 개수 : " + x);

 

728x90

'JAVA' 카테고리의 다른 글

Java OOP, 생성자  (0) 2022.01.13
Java 배열  (0) 2022.01.13
Java 조건문  (0) 2022.01.12
Java 자료형과 연산자  (0) 2022.01.12
Java 자바특징 및 변수  (0) 2022.01.12
Comments