22.01.24 JAVA for문, 예제

최고고·2022년 1월 24일
0
post-custom-banner

while문 예제 1) 현재몸무게, 목표몸무게를 입력받고 목표몸무게 이하가 되면 감량한 현재 몸무게를 출력하고, 목표몸무게 될때까지 계속해서 n주차까지 감량하는 프로그램을 만들기

Scanner sc = new Scanner(System.in);

		System.out.print("현재 몸무게: ");
		int p = sc.nextInt();
		System.out.print("목표 몸무게: ");
		int g = sc.nextInt();

		int num = 1;
		while(p > g) { 		//반복문이 몇번째에 끝날지 알수없음 현재(p)가 목표(g)보다 클때
			System.out.print(num + "주차 감량 몸무게: ");
			num++;
			int s = sc.nextInt();
			p -= s;
			
		} 
		
		System.out.println(p + "kg 달성!! 축하합니다!");
       

예제 2) 랜덤 정수 두개를 추출하고 while 문을 이용해 정답일 때 => 'success'출력하고 새로운 랜덤 정수 추출하고 실패할시 Y, N 입력받고 Y일때 직전 실패한 문제 출력, N은 프로그램 종료

Random r = new Random(); 
Scanner sc = new Scanner(System.in);

	int num1 = r.nextInt(10) + 1; 랜덤 0~9추출하므로 +1해주기
	int num2 = r.nextInt(10) + 1;

	String ansr = "Y";

	System.out.println("==plus Game==");

	while (ansr.equals("Y")) { //String 문자열비교 true
			
		System.out.print(num1 + "+" + num2 + "=");
		int input = sc.nextInt();
		int result = num1 + num2;  //결과값

			if (result == input) { 	//결과와 입력값이 같을때
				System.out.println("Success");
			} else {		// 그 외
				System.out.println("Fail");
				System.out.print("계속하시겠습니까?  ");
				ansr = sc.next();
				if (ansr.equals("N")) {
					System.out.println("게임 종료");
					break;	// 반복문 빠져나감
				} else if (ansr.equals("Y")) {
					continue; //반복문 처음으로 돌아가게함

				}
			}
			num1 = r.nextInt(10) + 1;
			num2 = r.nextInt(10) + 1;		//맞췄을 때 새로운 정수 생성하기 위한 변수
		}

변수.equals("Y") : String 참조형 변수 문자열비교 할때 메서드
continue : 반복문의 처음으로 돌아가게 하는 키워드
break : 하나의 반복문을 즉시 벗어날때 사용하는 키워드

for (초기화 구문; 조건식; 반복후 작업) { 실행문장-조건식이 참일 때 } 거짓일때 for문 나감

<실행순서>
1. 초기화 구문은 한번만 작동함
2. 조건식 검사 false가 나올때까지 반복작업
3. 검사 참일 때 실행 문장
4. 반복후 작업

주의할 변수 >>
지역변수 : 작동하는 공간에서만 사용할수있는 변수, 다른 곳에서도 같은 이름으로 사용할 수 있다.ex)for문의 초기화구문
전역변수 : 전체적으로

for (int i = 1; i <= 50; i++) {

	if (i % 10 == 3 || i % 10 == 6 || i % 10 == 9) {
		System.out.println("박수");
		} else if (i % 10 == 5) {
		System.out.println("으악");
		} else {
		System.out.println(i);
		}

	}

-->1~50까지 정수를 차례로 출력하는데, 일의자리 수가 3,6,9일때 박수 출력, 일의자리가 5일때 으악 출력

System.out.print ( ); => \t => tab해서 출력해주는 명령문
\n => prinln과 같은 역할

for문을 이용한 아래와 같은 별모양 출력하기

     *
    **
   ***
  ****
 *****
for (int i = 1; i <= 5; i++) {

	for (int j = 5; j >= i; j--) {		
   	 System.out.print(" ");
	}
		for (int k = 1; k <= i; k++) {
			System.out.print("*");
		}
System.out.println();
}

예제 : 2~30까지 약수 구하는 문제
예) 2의 약수 : 1,2 3의 약수 : 1,3 4의약수 : 1,2,4 ...

for(int i = 2; i<=30; i++) { 
	System.out.print(i + "의 약수 : ");
		for(int j=1;j<=i;j++) {
			if(i%j ==0) {
				System.out.print(j + " ");
			}		
		}
			System.out.println(); 
	}

Math.round는 정수형으로 반올림해줌
~~(Math.round(변수*10^n))/(10^n).0 원하는 자릿수 반올림
~~

post-custom-banner

0개의 댓글