본문 바로가기

JAVA

231206 Java

전일 학습 내용 복습

 

Math.random() 함수 사용해보기

int random = (int) (Math.random() * 127 + 1); // int 형으로 받기
char cRandom = (char) (Math.random() * 127 + 1); // char 형으로 받기, 숫자에 맞는 문자로 나옴

 

if 문으로 ASCII CODE 의 값이 어떤 문자인지 체크해보기

if (48 <= cRandom && cRandom <= 57 ){
  System.out.println("숫자입니다 : " + cRandom);
} else if (65 <= cRandom && cRandom <= 90){
  System.out.println("대문자 영어입니다 : " + cRandom);
} else if (97 <= cRandom && cRandom <= 122) {
  System.out.println("소문자 영어입니다 : " + cRandom);
} else {
  System.out.println("특수기호 입니다 : " + cRandom);
}

 

더 편하게는

if ('0' <= cRandom && cRandom <= '9' ){
  System.out.println("숫자입니다 : " + cRandom);
} else if ('A' <= cRandom && cRandom <= 'Z'){
  System.out.println("대문자 영어입니다 : " + cRandom);
} else if ('a' <= cRandom && cRandom <= 'z') {
  System.out.println("소문자 영어입니다 : " + cRandom);
} else {
  System.out.println("특수기호 입니다 : " + cRandom);
}

굳이 코드에 맞는 번호를 적을 필요가 없음

 

더더 편하게

if (Character.isDigit(cRandom)){ // char 글자가 숫자인지 확인
  System.out.println("숫자");
} else if (Character.isUpperCase(cRandom)) { // char 글자가 영어 대문자인지 확인
  System.out.println("대문자");
} else if (Character.isLowerCase(cRandom)){ // char 글자가 영어 소문자인지 확인
  System.out.println("소문자");
} else {
  System.out.println("특수문자");
}

 

오늘 강의

 

반복문

for 반복문

for (int i = 0; i < 5; i++) {
  System.out.println("안녕하세요. " + i);
}

 

for 문을 이용하여 1 부터 100 까지 찍기

for (int i = 1; i <= 100; i++) {
  if (i % 10 == 1) {
    System.out.println();
    System.out.print(i + ", ");
  } else {
    System.out.print(i + ", ");
  }
}

 

더 간단하게

for (int i = 1; i <= 100; i++) {
  System.out.print(i + ", ");
  if (i % 10 == 0) {
    System.out.println();
  }
}

 

for 문 예제

숫자 배수에 숫자 대신 문자열 출력하기

// 1 ~ 25 까지 숫자 출력
// 3 의 배수는 FIZZ, 5 의 배수는 BUZZ
// 3 의 배수이기도 하고 5 의 배수이기도 한 숫자는 FIZZBUZZ 출력

for (int i = 1; i <= 100; i++) {
  if (i % 15 == 0) {
    System.out.print("FIZZ BUZZ, ");
  } else if (i % 3 == 0) {
	System.out.print("FIZZ, ");
  } else if (i % 5 == 0){
	System.out.print("BUZZ, ");
  } else {
	System.out.print(i + ", ");
  }
}

 

for 문 예제

약수 구하기

for (int i = 1; i <= 100; i++) {
  System.out.print(i + " : ");
  for (int j = 1; j < i ; j++) {
	if (i % j == 0){
	  System.out.print(j + " ");
	}
  }
  System.out.println();
}

 

1 부터 10000 까지의 숫자 중 8 의 갯수를 구하기

public static void main(String[] args) {
        int count = 0;
        for (int i = 0; i < 10000; i++) {
            String value = String.valueOf(i);
            for (int j = 0; j < value.length(); j++) {
                char valueCh = value.charAt(j);
                if (valueCh == '8'){
                    count++;
                }
            }
        }
        System.out.println(count);
    }

 

String 으로 바꾸지 않고 구하기

int count = 0;
for (int i = 0; i < 10000; i++){
  if (i == 8){
  count++;
  }
  if((i % 10) == 8) {
  count++;
  }
  if((i % 100) == 8) {
  count++;
  }
  if((i % 1000) == 8) {
  count++;
  }
}
System.out.println(count);

 

while 문 이용하여 짧게 요약하기

int count = 0;
for (int i = 0; i < 10000; i++) {
    int temp = i;
    while (temp > 0){
        if (temp % 10 == 8){
            count++;
        }
        temp /= 10;
    }
    System.out.println(count);
}

 

* 찍기

for (int i = 0; i < 5; i++) {
  for (int j = 0; j < 5; j++) {
	System.out.print("*");
  }
  System.out.println();
}

*****
*****
*****
*****
*****

 

for (int i = 1; i <= 5; i++) {
  for (int j = 0; j < i; j++) {
	System.out.print("*");
  }
  System.out.println();
}

*
**
***
****
*****

 

for (int i = 5; i > 0; i--) { 
  for (int j = i; j > 0; j--) {
	System.out.print("*");
  }
  System.out.println();
}

i 는 증가하고 j 는 줄어들게 해도 됨

 

암호 만들기

public static void main(String[] args) {
    // 1. 사용자가 평문을 입력 = 스캐너
    Scanner sc = new Scanner(System.in);
    String input; // 평문
    String encrypted = ""; // 암호문

    // 2. 저장
    System.out.println("암호화 할 문장을 입력하세요. (대문자로)");
    input = sc.nextLine();

    System.out.println(input);

    // 3. 3 자리 밀기
    for (int i = 0; i < input.length(); i++) {
        char ch = input.charAt(i);
        System.out.println(ch);
        ch += 3;
        // 4. 저장
        encrypted += String.valueOf(ch);
    }
    // 5. 출력
    System.out.println(encrypted);
}

 

for 문을 이용하여

문자열에서 숫자만 출력하기

public static void main(String[] args) {
    String text = "1q2w3e4r5t";

    for (int i = 0; i < text.length(); i++) {
        char ch = text.charAt(i);
        if (ch < 'a'){ // ch 가 'a' 의 ASCII CODE 보다 작으면 출력
            System.out.print(ch); 
        }
    }
    
    String s = ""; // 빈 문자열 생성
    for (int i = 0; i < text.length(); i++) {
        char ch = text.charAt(i);
        if (Character.isDigit(ch)){ // ch 가 숫자면 s 에 문자 추가
            s += ch;
        }
    }
    System.out.println(s);

    s = "";
    for (int i = 0; i < text.length(); i++) {
        char ch = text.charAt(i);
        if (Character.isAlphabetic(ch)){ // ch 가 알파벳이면 뒤 반복문 실행하지 않음
            continue;
        }
        s += ch;
    }
    System.out.println(s);
}

 

* 트리 만들기

for (int i = 1; i <= 5; i++) {
    for (int j = 5; j > i; j--) {
        System.out.print("_");
    }
    for (int j = 0; j < i; j++) {
        System.out.print("*");
    }
    System.out.println();
}
/*
____*
___**
__***
_****
*****
*/

for (int i = 1; i < 6; i++) {
    for (int j = 5; j > i; j--) {
        System.out.print("_");
    }
    for (int j = 1; j < i * 2; j++) {
        System.out.print("*");
    }
    System.out.println();
}
/*
____*
___***
__*****
_*******
*********
*/

 

ForEach 문, 향상된 For문

// ForEach 문, 향상된 For 문
int[] number = {10,20,30,40,50};

for (int i : number) {
  System.out.print(i + " "); // 10 20 30 40 50
}

 

숫자 없이도 반복문 처리 가능

for (char ch = 'a'; ch < 'f'; ch++) {
    System.out.println(ch);
}

'JAVA' 카테고리의 다른 글

231208 Java  (0) 2023.12.08
231207 Java  (0) 2023.12.07
231205 Java  (0) 2023.12.05
231204 Java  (2) 2023.12.04
231201 Java  (0) 2023.12.01