본문 바로가기
개발 공부 Today I Learned

[국비 12일차 TIL] 자바 반복문 for문

by 개발자신입 2023. 12. 6.
반응형

문자열 추출

* Math.random();

- 로또 번호 뽑기

int num = (int) (Math.random() * 45) +1;
System.out.println(num);

 

- 아스키코드표 대응 문자열 뽑기

char num = (char)((char)(Math.random() * 127) + 1);
System.out.println(num);


int num = (int)(Math.random() * 127) + 1;
System.out.println((char)num);

 

  • Character.isDigit()
  • Character.isUpperCase()
  • Character.isLowerCase()
public class Test01 {

	public static void main(String[] args) {
		
        // Math.random();
		// 아스키코드표
        
		char num = (char) ((char) (Math.random() * 127) + 1);
		System.out.println(num);
        
		if (num >= '0' && num <= '9') {
			System.out.println("숫자");
		} else if (num >= 'A' && num <= 'Z') {
			System.out.println("영어 대문자");
		} else if (num >= 'a' && num <= 'z') {
			System.out.println("영어 소문자");
		} else {
			System.out.println("특수문자");
    }
    
    
//    위 코드보다 더 간단한 방법 = 메소드 이용 //
			
        // 메소드로 구분하기
		// API 보기
		// Character 클래스 = 자바에서 사용하는 모든 문자
            
            
		if(Character.isDigit(num))	{
			System.out.println("숫자");
		} else if (Character.isUpperCase(num)) {
			System.out.println("대문자");
		} else if (Character.isLowerCase(num)) {
			System.out.println("소문자");
		} else {
			System.out.println("특수문자");
		
		
		}

	}

}

for

for(변수 초기화식; 변수 조건문; 변수 증감식) {
    변수 조건문이 true면 반복 실행할 문장;
}

  

- 3의 배수 Fizz, 5의 배수 Buzz, 15의 배수 Fizz Buzz

for (int i = 1; i < 30; i ++) {
    if (i % 15 == 0) {
        System.out.print("Fizz & Buzz, ");
    } else if (i % 5 == 0) {
        System.out.print("Buzz, ");
    } else if (i % 3 == 0) {
        System.out.print("Fizz, ");
    } else {
        System.out.print(i + ", ");
    }

int number = 0;
for(int i = 1; i < 100; i++) {
    if(String.valueOf(i).contains("8")) {
        System.out.println("8이 들어간 숫자 : "+i);
        number++;
    }
}
System.out.println(" ");
System.out.println("8이 들어간 숫자 수 : " + number);

 


실전 연습문제

 [문제] 시저 암호는 고대 로마의 황제 줄리어스 시저가 만들어 낸 암호임. 예를 들어 알파벳 A를 입력했을 때,  그 알파벳의 n개 뒤에 오는(여기서는 예를 들 때 3으로 지정하였다)알파벳이 출력되는 것이다.  예를 들어 바꾸려는 단어가 'CAT", n 5로 지정하였을 때 "HFY"가 되는 것이다. 어떠한 암호를 만들 문장과 n을 입력했을 때 암호를 만들어 출력하는 프로그램을 작성해라.

 

  • charAt() : 문자열 내 특정 위치에 있는 문자 검색

 

1. Scanner 사용하여 사용자로부터 입력을 받는다.

2. 사용자에게 "암호화할 문장을 입력하세요. (대문자)" 메시지를 출력한다.

3. 사용자로부터 줄의 입력을 받는다.

4. 입력된 문장을 출력한다.

5. 반복문을 사용하여 입력된 문자에 대해 다음을 수행한다:

    현재 문자를 ch 변수에 저장한다.

    ch 3 더한 값을 encrypted 문자열에 추가한다.

    encrypted 초기에 문자열로 시작한다.

6. 암호화된 문장을 출력한다.

 

import java.util.Scanner;
public class Test03 {
    public static void main(String[] args) {
    
        Scanner sc = new Scanner(System. in);
        String input; // 평문
        String encrypted = ""; // 암호문 : ""로 초기화
        
        System.out.println("암호화 할 문장을 입력하세요. (대문자)");
        input = sc.nextLine();
        System.out.println(input);
        for (int i = 0; i < input.length(); i ++) { // input의 길이만큼
            char ch = input.charAt(i);
            encrypted += (char)(input.charAt(i) + 3);
        }
        System.out.println(encrypted);
    }
}

- 정해진 문장에서 숫자 또는 영어 문자만 추출 출력하기


public class Test04 {

    public static void main(String[] args) {
        String text = "1q2w3e4r5t";
        
        System.out.println("문자열에서 숫자만 추출:");

        for (int i = 0; i < text.length(); i++) {
            char currentChar = text.charAt(i);

            if (Character.isDigit(currentChar)) {
                System.out.print(currentChar);
            }
        }
    }
}

- 홀수 출력하기 (1)

public class For04 {
    public static void main(String[] args) {
        for (int i = 0; i < 10; i ++) {
            if (i % 2 == 0) {
                continue;
            } else {
                System.out.println(i);
            }
        }
    }
}

 

- 짝수 출력하기

public class Test001 {
	public static void main(String[] args) {

		for (int i = 1; i < 10; i++) {
			if(i % 2 !=0) {
				continue;
			} else {
				System.out.println(i);
			}			
		}
	}
}

 

- 홀수 출력하기 (2)

public class For04 {
    public static void main(String[] args) {
        for (int i = 1; i < 10; i += 2) {
            System.out.println(i);
        }
    }
}
public class For04 {
    public static void main(String[] args) {
        for (int i = 1; i < 10; i ++) {
            if (i == 5) {
                continue; // 5가 컨티뉴에 닿으면 다시 for문 시작. 불필요한 숫자 제거.
            }
            System.out.println(i);
        }
    }
}

 


- 반쪽 트리모양 만들기 (for 3개 필요)

for(int i = 0; i < 5; i++) {
    for(int j = i + 1; j < 5; j++) {
        System.out.print(" ");			// print (ln이 아님)
    }
    for(int j = 1; j < i + 2; j++) {
        System.out.print("*");			// print (ln이 아님)
    }
    System.out.println("");

 

- 트리모양 별 찍기

public static void main(String[] args) {
    for (int i = 0; i < 5; i ++) {
        for (int j = i + 1; j < 5; j ++) {
            System.out.print(" ");			// print (ln이 아님)
        }
        for (int j = 0; j < i * 2 + 1; j ++) {
            System.out.print("*");			// print (ln이 아님)
        }
        System.out.println("");

 - ForEach

int number[] = {
    10,
    20,
    30,
    40,
    50
};
for (int i = 0; i < number.length; i ++) {
    System.out.println(number[i]);
}
System.out.println("==============================\n");
for (int i : number) { // 데이터 : 자료
    System.out.println(i);
}

 

- for문으로 무한 반복하기

public static void main(String[] args) {
    for (;;) {
        System.out.println("!");
    }

          

 

반응형

댓글