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 : 하나의 반복문을 즉시 벗어날때 사용하는 키워드
<실행순서>
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 원하는 자릿수 반올림
~~