<반복문>
-특정 실행문을 여러번 반복해서 실행해야하는 경우 사용하는 구문
<반복문의 종류>
-for문
-while문
-do-while문
for문
- 반복의 횟수를 알고 있는 경우 사용
for(초기식; 조건식; 증감식) {
실행문;
}
증감식의 경우 증감연산자나 대입연산자를 사용
num++ 또는 num+=1
순서
1) 초기식
2) 조건식
3) 실행문
4) 증감식
조건식이 false가 될때까지 2,3,4 반복
1~30까지의 수에서 3의 배수만 출력
for(int i = 1; i <= 30; i++) {
if(i % 3 == 0) {
System.out.print(i + " ");
}
}
1~50까지 반복하며 2의 배수 또는 3의 배수인 경우 출력
for(int i = 1; i <= 50; i++) {
if(i % 2 == 0 || i % 3 == 0) {
System.out.println(i);
}
}
1~10까지의 합을 구하기
int sum = 0;
for(int i = 1; i <= 10; i++) {
sum += i;
}
System.out.println("1~10까지의 합 : " + sum);
1~100까지의 정수 중에서 3의 배수의 총합을 출력하는 코드를 작성
int sum = 0;
for(int i = 1; i <= 100; i++) {
if(i % 3 == 0) {
sum += i;
}
}
Math.random()
- 0~1 사이 실수의 난수 발생(1은 포함 안됨)
<원하는 범위 난수 발생하기>
1. Math.random()에 원하는 최대값 곱하기
(0~최대값 전까지의 실수 난수 발생. 최대값 포함 안됨)
2. 소수점이 필요없으면 int(정수타입)으로 강제 형변환
(0~최대값 전까지의 정수 난수 발생)
3. 강제 형변환한 난수에 더하기 1
int result = (int)(Math.random()*10) + 1;
(Math.random()*10) 이 부분의 () 가 없어질 경우
(int)Math.random() 은 0이 나오기 때문에 0 *10 + 1 로 1만 나온다.
5번동안 난수를 발생시킵니다
이때 발생한 난수는 1~10까지 가능합니다
발생한 난수의 값이 5를 넘는 경우 "넘침!!"이라 콘솔에 출력
for(int i = 0; i < 5; i++) {
int result = (int)(Math.random()*10) + 1;
if(result > 5) {
System.out.println("넘침!! -->" + result);
}else {
System.out.println(result);
}
}
이중 for문
- 제어문 중첩 원리를 사용하여 반복하여 내부적으로 한번 더 반복하는 방법
for(int num1 = 1; num1 <= 3; num1++) {
for(int num2 = 1; num2 <= 2; num2++) {
System.out.println(num1 + "_" + num2);
}
}
실행결과)
1_1
1_2
2_1
2_2
3_1
3_2
구구단
for(int num1 = 2; num1 <= 9; num1++) {
for(int num2 = 1; num2 <= 9; num2++) {
System.out.println(num1 + "x" + num2 + "=" + (num1*num2));
}
}
2~5단까지의 구구단 출력
for(int i = 2; i <= 5; i++) {
for(int j = 1; j <= 9; j++) {
System.out.printf("%02d x %02d = %02d\n",i,j,i*j);
}
}
5~8단까지의 구구단을 출력하는데 짝수곱들만 출력
for(int i = 5; i <= 8; i++) {
System.out.println(" ");
for(int j = 2; j <= 8; j+=2) {
System.out.printf("%d x %d = %d\n",i,j,i*j);
}
}
중첩 for문을 이용하여 방정식 4x + 5y = 60의 모든 해를 구해서
(x,y) 형태로 출력하는 코드를 작성해 보세요.
단, x와 y는 10 이하의 자연수입니다.
for(int i = 1; i <= 10; i++) {
for(int j = 1; j <= 10; j++) {
int result = (4 * i) + (5 * j);
if(result == 60) {
System.out.printf("(%d,%d)\n",i,j);
}
}
}
for문을 이용해서 다음과 같은 실행 결과가 나오는 코드를 작성해 보세요.
*
**
***
****
*****
1)이중 for문 사용
for(int i = 1; i <= 5; i++) {
for(int j = 1; j <= i ; j++) {
System.out.print("*");
}
System.out.println(" ");
}
2)문자열 합치기
String str = "";
for(int i = 1; i <= 5; i++) {
str += "*";
System.out.println(str);
}
'Java' 카테고리의 다른 글
[Java] null, NullPointerException, 참조타입 (0) | 2024.07.27 |
---|---|
[Java] Scanner, while, do-while, break, continue (2) | 2024.07.26 |
[Java] switch case (2) | 2024.07.24 |
[Java] if, else, else if, 중첩 if (3) | 2024.07.23 |
[Java] 대입연산자, 삼항연산자(조건연산자) (0) | 2024.07.22 |