국비/Java
[05-1] Java - 반복문 (for, while, do-while)
제발 취업하게 해주세요
2022. 4. 13. 22:10
❗for 문 |
* 괄호 안에 반복을 지정하는 부분이 있고, * 초기식; 조건식; 증감식 세 가지로 이루어진다. // 반복 횟수를 지정하는 요소들 * ;; 각각 세미콜론으로 구분한다! * [표현법] * for(초기식; 조건식; 증감식) { * 반복적으로 실행시키고자 하는 코드 * } * 초기식 : 반복문이 시작될 때 "초기에 단 한 번만 실행될" 구문 * * 반복문에서 사용할 변수를 선언하고 초기화하는 구문 => int i = 0 * 변수 i, j, k 주로 사용 * 조건식 : "반복문이 실행될 조건"을 작성하는 구문 * * 조건식이 true일 경우 반복문 실행 * 조건식이 false일 경우 반복문을 멈추고 반복문 밖으로 빠져나옴 => i < 10; * - 증감식 : "반복문을 제어하는 변수 값"을 증감시키는 구문 * 보통 초기식에서 선언된 변수를 가지고 증감식을 작성한다. * 이때, 증감연산자가 주로 쓰임 => i++ i-- |
public void method5() { //메소드5 시작
System.out.println("중첩 for문 \n");
/*for(int i = 1; i <=5; i++) {
System.out.println("*");
}*/
for(int i = 1; i <= 5; i++) {
for(int j = 1; j <=5; j++) {
System.out.print("*");
}
System.out.println("");
}
System.out.println("-----------------------------------------");
System.out.println("for문 안에 if문 쓰기");
for(int i = 0; i < 30; i++) {//for 시작
System.out.println((i + 1) + "번 째 반복입니다");
// if문으로 10번째 반복마다 ☆ 출력해주기
if((i + 1) % 10 == 0) {
System.out.println("☆");
}
} // for 끝
} //메소드5 끝

// 실습!! 사용자한테 단을 입력받아서 구구단을 출력해보자
public void gugudan() {
Scanner sc = new Scanner(System.in);
System.out.println("[구구단] 단을 입력해주세요.");
int dan = sc.nextInt();
for(int i = 1; i <= 9; i++) {
System.out.println(dan + " X " + i + " = " + (dan * i));
}
}// 구구단 끝

❗while 문 |
* [표현법] 초기식; // 필수는 아님 while(조건식) { 반복적으로 실행할 코드; // a 증감식;// 필수는 아님 } * 괄호 안에 조건식이 true일 경우 해당 구문(a)를 반복적으로 실행 * while(true) >> 반복을 무조건 시킬거야!! |
public void method3() { //메소드3시작
// 1부터 100까지 짝수만 더하자
// 1부터 100까지 더한 합계 출력 -> 1차 문제 해결
int i = 1;
int sum = 0;
/* while(i <= 100) {
sum += i;
i++;
}
System.out.println(sum);*/
// 1 ~ 100 짝수만 더하기
while(i <= 100) {
if(i % 2 == 0) {
sum += i;
}
i++;
}
System.out.println(sum);
}//메소드3 끝
// 실습 홀수만 출력
public void method4() { //메소드 4
int i = 1;
int sum = 0;
while(i <= 100) {
if(i % 2 == 1) {
sum += i;
}// if끝
i++;
}// while 끝
System.out.println(sum);
}// 메소드4 끝
‼️ Math.random(); |
* random : 무작위 * 무작위 숫자를 얻고 싶을 때 Math라는 클래스의 random() 메소드를 활용! * Math.random() 결과 값 : 0.0 ~ 0.99999999999999999999999......... * (int)(Math.random * 몇개의랜덤값) + 시작수; >> 시작수 ~ 몇 개의 랜덤값을 얻고 싶을 때 공식! |
public void method5() {//메소드5
// 1부터 랜덤한 수 (1~10)까지 모두 더하는 총 합계
// 1단계. random()가 잘 작동되나 ?? 호출해보기
double random = Math.random();
System.out.println("random : " + random);
// 2_1단계. 결과값에 10을 곱하면
// 0.0 ~ 9.999999999999...
// 2_2단계. int형으로 강제형변환을 하면?
// 0 ~ 9
// 2_2단계. 범위를 맞추기 위해 +1을 해주면?
// 1 ~ 10
// int(Math.random * 10) + 1
// (int)(Math.random * 몇개의랜덤값) + 시작수;
//random 적용
int random2 = (int)(Math.random() * 10) + 1;
System.out.println("random2 : " + random2);
System.out.println("---------------------------------------");
// 3단계. 누적합 구하기
// 1부터 랜덤한 수 (1~10)까지 모두 더하는 총 합계
int i = 1;
int sum = 0;
while(i <= random2) {
sum += i;
i++;
}
System.out.println("1 ~ random2까지 더한 결과 : " + sum);
// 보통 반복횟수가 명확할 때 for문을 사용, 명확하지 않을 때는 while문 사용
}//메소드5끝

public void method6() { // 메소드6 시작
// 로또규칙 ver.1
// 번호 범위 : 1 ~ 45
// 6개 선택
// 배열 맛보기 int형 배열 int[], 참조자료형, 주소값이 들어감 >> [I@7852e922
int[] lotto = new int[6];//index 0~5 => 6개
// (int)(Math.random() * 몇개의랜덤값) + 시작 수
// random 1 ~ 45
// lotto[0] = (int)(Math.random() * 45) + 1
// lotto[1] = (int)(Math.random() * 45) + 1
// lotto[2] = (int)(Math.random() * 45) + 1
// lotto[3] = (int)(Math.random() * 45) + 1
// ...
// lotto[5] = (int)(Math.random() * 45) + 1
int i = 0;
while(i < 6) {
lotto[i] = (int)(Math.random() * 45 + 1);
i++;
}
// Arrays.toString(배열이름); => 배열 이름 넣는 메소드, import 필요
System.out.println(lotto); // [I@7852e922 >> 배열의 주소값
System.out.println(Arrays.toString(lotto));
}// 메소드6 끝

❗do-while문 |
* 별도의 조건 검사 없이 무조건 1회는 실행! > 조건이 맞지 않더라도 한 번은 수행 * 나머지는 while문과 동일 * [표현법] * 초기식; // 필수 아님 * do { * System.out.println("실행해라") * 증감식; //필수 아님 * } while(조건식); * while문은 처음 수행할 때도 조건식 검사 후 true여야 실행 * do-while의 첫 실행은 별도의 조건검사 없이 무조건 한 번 실행!! |
public void method1() { // 메소드1
// 애초에 조건이 맞지 않아도 한 번은 실행!!!
int num = 1; //초기식
do {
System.out.println("조건 안 맞지롱");
}while(num == 0);
}//메소드1 끝