[Java] Lv1. 랜덤 닉네임 생성기

Yuri·2024년 12월 12일

Java

목록 보기
5/13

🍀 본격적으로 시작해 볼까요?

문제

  • 랜덤한 닉네임을 생성하는 자바 코드를 작성해보세요.
  1. 사용자는 최소 27가지 이상의 닉네임 중 하나를 랜덤으로 출력 할 수 있습니다. (아래의 키워드를 사용해주세요!)
    • 기절초풍, 멋있는, 재미있는
    • 도전적인, 노란색의, 바보같은
    • 돌고래, 개발자, 오랑우탄

Random 라이브러리

import java.util.Random;

public class RandomNicknameCreator {

    private String[] list1 = {"기절초풍", "멋있는", "재미있는"};
    private String[] list2 = {"도전적인", "노란색의", "바보같은"};
    private String[] list3 = {"돌고래", "개발자", "오랑우탄"};

    public String createRandomNickname() {
        Random rand = new Random();
        rand.setSeed(System.currentTimeMillis());

        String nick1 = list1[rand.nextInt(3)];
        String nick2 = list2[rand.nextInt(3)];
        String nick3 = list3[rand.nextInt(3)];

        return nick1 + " " + nick2 + " " + nick3;
    }

    public static void main(String[] args) {
        RandomNicknameCreator rnc = new RandomNicknameCreator();
        String nickname = rnc.createRandomNickname();
        System.out.println(nickname);
    }
}

Math.random()

public class RandomNicknameCreator2 {
    private String[] list1 = {"기절초풍", "멋있는", "재미있는"};
    private String[] list2 = {"도전적인", "노란색의", "바보같은"};
    private String[] list3 = {"돌고래", "개발자", "오랑우탄"};

    public String createRandomNickname() {

        String nick1 = list1[(int) (Math.floor(Math.random() * 3))];
        String nick2 = list2[(int) (Math.floor(Math.random() * 3))];
        String nick3 = list3[(int) (Math.floor(Math.random() * 3))];

        return nick1 + " " + nick2 + " " + nick3;
    }

    public static void main(String[] args) {
        RandomNicknameCreator2 randomNicknameCreator2 = new RandomNicknameCreator2();
        String nickname = randomNicknameCreator2.createRandomNickname();
        System.out.println(nickname);
    }
}

✏️ Math.random() 은 0.0보다 크거나 같고 1.0 보다 작은 난수를 발생

Math.random()으로 생성된 숫자들은 0.0 ~ 0.99... 사이 무한에 가까운 수로 생성되기 때문에 0~2 사이의 랜덤한 수를 생성하는 경우, (int) (Math.random()*2) 로는 2 값을 얻을 수 없다.

▶︎ 0~2 사이의 랜덤 숫자를 생성하기

  • 1) 0.00 ~ 2.99 사이의 랜덤한 숫자를 생성한다: Math.random() * 3
  • 2) 숫자 소수점 내림으로 0.0 ~ 2.0 사이의 값을 구한다: Math.floor(Math.random() * 3)
  • 3) 결과를 실수 -> 정수로 형변환한다: (int) (Math.floor(Math.random() * 3))

결과


profile
안녕하세요 :)

0개의 댓글