반응형
반복문 (for)
3가지 조건 (시작값/조건/증가)을 한번에 for()안에 넣어놓은것.
- 가독성이 좋다.
(예제)
int i = 1; (1)시작값
while(i <= 10){ (2)조건
i++; (3)증가
}
for(int i = 1; i <=10; i++){
동작..
}
➰ for 문 - 1-10까지의 합 구하기.
public class ForEx01 {
public static void main(String[] args) {
int sum = 0;
//1~10합계
for(int i = 1; i <= 10; i++) {
sum += i;
}
System.out.println(sum);
System.out.println("-------------------------------------------------");
for(int i = 10; 1 <= i; i--) {
System.out.println(i);
}
}
}
➰ for 문 - 소수/소수가 아닌 수 구별하기
import java.util.Scanner;
public class ForEx02 {
public static void main(String[] args) {
// 정수를 입력받고, 입력한 정수가 소수인지 판별
// 소수 -> 나누어 떨어지는 수가 1과 자기자신인 수
// 조건 = 약수의 개수가 2개인 수
Scanner scan = new Scanner(System.in);
System.out.print("정수>");
int num = scan.nextInt();
int count = 0; // 카운트변수
for(int i = 1; i <= num; i++) {
if(num % i == 0) { // 약수
count ++;
}
}
//반복을 다 돌고 나왔을때 count == 2라면 소수
System.out.println(count == 2 ? num + "은 소수" : num + "은 소수가 아님");
scan.close();
}
}
➰ Quiz - for문을 활용하여 아래 문제들 풀기
1. 7~100까지 정수 중의 7의 배수를 가로로 출력
2. 1~200까지 정수 중의 9의 배수의 개수를 출력
3. 50~100까지의 두 수 사이의 합
4. char 변수를 활용해서 A~Z까지 출력, A=65 / Z=90
5. 어떤 수를 입력받아서 입력 받은 수의 구구단 출력
import java.util.Scanner;
public class Quiz12 {
public static void main(String[] args) {
/* for문 실습 */
//1. 7~100까지 정수 중의 7의 배수를 가로로 출력
System.out.print("1. 7의 배수(7-100): ");
for (int i = 7; i <= 100; i += 7) {
System.out.print(i+" ");
}
System.out.println();
//2. 1~200까지 정수 중의 9의 배수의 개수를 출력
int count = 0;
for(int i = 1; i <= 200; i++) {
if(i % 9 == 0) {
count++;
}
}
System.out.println("2. 9의 배수의 개수(1-200): " + count + "개");
//3. 50~100까지의 두 수 사이의 합
int sum = 0;
for(int i = 50; i <= 100; i++) {
sum += i;
}
System.out.println("3. 50~100까지의 합은: " + sum);
//4. char 변수를 활용해서 A~Z까지 출력, A=65 / Z=90
/* casting을 활용한 방법 */
System.out.print("4. A to Z print: ");
for(int i = 65; i <= 90; i++) {
System.out.print((char)i + " ");
}
System.out.println();
/* 또 다른 방법
System.out.print("4. A to Z print: ");
for(char i =65; i <= 90; i++) {
System.out.print(i+" ");
}
System.out.println();
*/
//5. 어떤 수를 입력받아서 입력 받은 수의 구구단 출력
Scanner scan = new Scanner(System.in);
System.out.print("단수 : ");
int input = scan.nextInt();
for(int i = 1; i <= 9; i++) {
System.out.printf("%d X %d = %d\n", input, i, input*i);
}
scan.close();
}
}
➰for문 - 배열의 사용.
import java.util.Arrays;
public class ForEx03 {
public static void main(String[] args) {
//for문으로 배열의 사용.
/*
int[] arr = {1,2,3,4,5,6,7,8,9,10};
for(int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
*/
//100개의 크기를 갖는 int 배열에 3의 배수만 순서대로 저장.
int[] arr = new int[100];
int a = 0;
for(int i = 0; i < arr.length; i++) {
a +=3;
arr[i] = a;
}
System.out.println(Arrays.toString(arr));
}
}
➰변수의 swap - temp변수를 사용하여 값을 swap하기
import java.util.Arrays;
public class ForEx04 {
public static void main(String[] args) {
//변수의 swap : x와 y의 값을 바꾸어주는 그런 작업.
/* 변수의 swap의 기본 구조
int x = 10;
int y = 5;
int temp = x;
x = y;
y = temp;
System.out.println("x값:" + x + ", y값:" + y);
*/
//배열의 swap - 1번 랜덤하게 섞는다.
int[] arr = {1,2,3,4,5,6,7,8,9,10};
int ran = (int)(Math.random() * 9) + 1;
int temp = arr[0];
arr[0] = arr[ran];
arr[ran] = temp;
System.out.println(Arrays.toString(arr));
}
}
➰Quiz - 절대 중복되지 않는 3개의 숫자를 뽑기(swap을 사용하여 랜덤하게 배열을 섞는다.)
1. 배열을 15번정도 랜덤하게 섞는다.
2. 섞인 배열의 앞에서부터 3개의 값을 새로운 배열에 저장해서 출력한다.
import java.util.Arrays;
public class Quiz13 {
public static void main(String[] args) {
//절대 중복되지 않는 3개의 숫자를 뽑기
/*
* 배열을 랜덤하게 15번정도 섞는다.
* 0~2번째 인덱스값을 새로운 배열에 옴겨담는다.
*/
int[] arr = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
for(int i = 0; i < arr.length; i++) {
//random한 수를 for문 밖에서 뽑으면 한번밖에 안뽑힘. for문 안에서 뽑아야 됩니다.
int ran = (int)(Math.random() * arr.length); //0~14
//System.out.println(arr[i] + "-" + arr[ran]);
int temp = arr[i];
arr[i] = arr[ran];
arr[ran] = temp;
}
int[] result = new int [3];
for(int i = 0; i < result.length; i++) {
result[i] = arr[i];
}
System.out.println(Arrays.toString(result));
}
}
❗ 나의 실수
- 랜덤 수를 for문 밖에서 할당받음.
for문 밖에서 받으면 1개의 랜덤한 수만 얻을 수 있다.
for문 안에서 얻어야 15개의 랜덤한 수를 얻을 수 있다.
중첩반복문
아래와 같이 사용가능하다.
for(int i = 1; i <= 10; i++){
for(int j = 1; j <10; j++){
동작..
}
}
위 코드의 동작에 대하여
i = 1
j = 1---->10까지 동작
i = 2
j = 1---->10까지 동작
....
i = 10
j = 1---->10
➰중첩반복문의 사용.
public class MultiForEx01 {
public static void main(String[] args) {
//1~9
for(int i = 1; i <= 9; i++) {
System.out.println(i);
//중첩반복문의 사용
for(int j = 1; j <= 9; j++) {
System.out.println(i + "-" + j);
}
System.out.println("---------");
}
}
}
➰Quiz - 2~9단의 구구단을 세로로 출력하기.
public class Quiz14 {
public static void main(String[] args) {
//2단~9단까지 구구단을 세로로 출력.
for(int i = 2; i <= 9; i++) {
System.out.println("구구단:" + i + "단");
for(int j = 1; j <= 9; j++) {
System.out.printf("%d X %d = %d\n", i, j, i*j);
}
System.out.println("----------------");
}
}
}반응형
'국비지원 > JAVA' 카테고리의 다른 글
| [JAVA] 7-1. 무한loop와 탈출문 break (0) | 2022.09.28 |
|---|---|
| [JAVA] 6. 중첩반복문(for)과 향상된 for loop (0) | 2022.09.27 |
| [JAVA] 5-1. 배열과 반복문(while문), do-while문 곁들인.. (0) | 2022.09.26 |
| [JAVA] 4-2. 반복문 (while) (0) | 2022.09.23 |
| [JAVA] 4-1. 조건문 switch 활용 (0) | 2022.09.23 |