본문 바로가기

Java 기본 개념

자바를 잡아라 제 5장 - 반복만이 살 길이다

728x90

  [ 2022년 9월 26일 월요일 ] 

 

 

  • 반복문 "for" : 정확한 반복 횟수를 알고 있을 때 사용하면 유용

       * 실행문장이 한줄이면 블록 {   }을 생략 가능


           [ for문의 구조 ]

 

               for ( 초기값; boolean형 조건식; 반복 표현식 ) {
                  

                            반복할 실행문;                            }

 

 

 

  Example - (1) 정수 1부터 10까지의 합계 구하기

 

public class ForEx01 {
	
	public static void main(String[] args) {
		
		//1~10합계
		int sum = 0;
		for(int i=1; i<=10; i++) {
			
			sum += i;
			
		}
		System.out.println(sum);
		
		System.out.println("-----------------------------------------------");
		
		
		for(int i =10; i>=1; i--) {
			
			System.out.println(i);
		}
		
	}
}

 

     
     int sum = 0;  // sum변수 초기화
         for ( int i=1; i <=10; i++ ) {    // 데이터 타입이 정수인 i가 초기값 1부터 10까지 1씩 증가하는 반복문
                 sum += i;
         }
            System.out.println(sum);

 

 

  Example - (2) 입력받은 정수의 약수의 개수 구하기

 

import java.util.Scanner;

public class ForEx02 {
	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
		System.out.print("정수>");
		int num = sc.nextInt();
		
		int count = 0;//카운트변수
		for(int i = 1; i <= num; i++ ) {
			
			if(num % i ==0) {//약수
				count++;
			}
				
			
		}
		 System.out.println(count == 2? num + "은 소수" : num + "은 소수가 아님");
		//반복을 다 돌고 나왔을 때 count == 2라면 소수
		
		
	}
}

 

 
   int count = 0;   // count 변수 초기화
        for ( int i = 1; i <= num; i++ ) {         // 정수인 i가 초기값 1부터 (입력 받은) num까지 1씩 증가하는 반복문
                 if ( num % i == 0 ){                // 입력 받은 정수의 약수의 갯수 구하는 조건문
                        count++;
          }
             System.out.println(count);

 

 

  Example - (3)  배열에 3의 배수만 저장해서 출력하기

 

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; //3의 배수를 나타낼 변수
		
		for(int i = 0; i < arr.length; i++) {
			
			a +=3;
			arr[i] = a;
			
		}
		System.out.println(Arrays.toString(arr));
	
	
	
	}
}

 

       
       int[ ] arr = new int [100];   // 배열 생성
            int a = 0;   // 3의 배수를 나타낼 변수
               for ( int i = 0; i < arr.length; i++) {
                             a +=3;   // 변수 a가 3씩 증가하는 실행문이 배열의 크기만큼 반복
                             arr[i] = a;   // 반복문으로 형성된 a가 배열에 저장
               }
                System.out.println(Arrays.toString(arr));

 

 

Example - (4)  배열의 swap

 


   [ 변수의 swap ] 

       int x = 10; 
       int y = 5; 
     
       int temp = x;  // temp가 임시로 값을 보관하고 있다가 전달하는 역할 

       x = y; 
       y = temp;  // 변수 x와 y의 swap
    
       System.out.println("x:" + x + " y:" + y);

 

mport java.util.Arrays;

public class ForEx04 {
	
	public static void main(String[] args) {
	
	
		//배열의 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));
		
		
		}

 


      public static void main(String[ ] args) {

        int [ ] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};     // 배열의 크기 10인 정수 배열 생성
        int ran = (int)(Math.random( ) * 9) +1;     // Math.random: 0 이상 ~1 미만 >> 1이상~10 미만 

          int temp = arr[0];        // arr[0]을 temp에 임시로 저장해두고
          arr[0] = arr[ran];         // ran(임으로 뽑은 값)이 인덱스인 배열을 arr[0]에 두고
          arr[ran] = temp;         // arr[ran]을 temp에 저장  >> arr[0]와 arr[ran] 값을 바꿈

       }
          System.out.println(Arrays.toString(arr));