본문 바로가기
JAVA

day03) Random, 형변환, Final

by code_learner 2021. 12. 23.

1) Random 클래스

  • 사용법:
    Random rand= new Random();
    int num=rand.nextInt(100);
    //0~99중 무작위 숫자가 변수에 저장된다​

 

  • 숫자 맞추기 알고리즘
    	Scanner sc=new Scanner(System.in);
          Random rand= new Random();
          int ans=rand.nextInt(100)+1;//정답은 랜덤으로 설정
          int L=1;//낮은 숫자를 저장할 변수
          int H=100;//높은 숫자를 저장할 변수
          int cnt=0;
          while(true) { // [수행횟수] 불분명하여 while문 사용!
             System.out.print(L+"~"+H+"중에서 숫자하나 선택하세요. ");
             int num=sc.nextInt();
             if(num<L||H<num) {
                System.out.println("잘못된 숫자를 입력하셨습니다. 다시 입력하세요.");
                continue;
             }
             cnt++;
             if(num<ans) {
                System.out.println(num+"보다 큽니다.");
                L=num+1;
             }
             else if(ans<num) {
                System.out.println(num+"보다 작습니다.");
                H=num-1;
             }
             else {
                System.out.println(num+"! 정답입니다!!! 총 "+cnt+"번만에 맞추셨습니다.");
                break; // 무한루프는 반드시 종료조건을 필요로함!
             }
          }
        /*결과:1~100중에서 숫자하나 선택하세요. 50
    	50보다 작습니다.   or   50보다 큽니다.
    	1~49중에서 숫자하나 선택하세요. 51
    	잘못된 숫자를 입력하셨습니다. 다시 입력하세요.
    	1~49중에서 숫자하나 선택하세요. -100
    	잘못된 숫자를 입력하셨습니다. 다시 입력하세요.
    	1~49중에서 숫자하나 선택하세요. 44
    	44! 정답입니다!!! 총 2번만에 맞추셨습니다.*/​

2. 형변환

  • 자동형변환: 코더가 별다른 손을 쓰지 않아도 알아서 자료형에 맞춰 값을 저장 
  • 명시적 형변환: 코더가 값에 자료형을 직접 대입하여 저장 ex)int a 
int a = (int)3.14; //명시적 형변환 (데이터 손실이 일어날 수 있다) ->3
double b=3;//자동 형변환 -> 3.0

int n1 = 10;
int n2 =11;
double avg=(n1+n2)*1.0/2; //자동형변환
//정수/정수=정수   정수/실수=실수  실수/정수=실수
//나누기를 할 때 실수로 저장하기 위해서 1.0을 곱해주는 것이 좋다.
System.out.println("n1과 n2의 평균은 "+avg+"입니다.");
  • 아스키코드: 컴퓨터는 0과 1 숫자 밖에 모르기 때문에 문자도 숫자로 기억한다. 이때, 어떤 숫자와 어떤 문자를 대응시키기 위해 통상 아스키 코드를 사용한다. ex)A: 65... a:97... 따라서 문자는 연산이 가능하다
		int i = 65;
		char c=(char)i;//아스키코드
		System.out.println(c);
		System.out.println(i);
		
		//65->97
		c+=32;
		System.out.println(c);
				
		for (char j = 'a'; j < 'z'; j++) {
			System.out.print(j+" ");
		}
        //결과
        //A
	//65
	//a
	//a b c d e f g h i j k l m n o p q r s t u v w x y

3. final

final double PI=3.14;
//final: 변수를 상수화 시켜 재정의를 방지한다

'JAVA' 카테고리의 다른 글

day03)배열  (0) 2021.12.24
day03) 문자열 내장 메소드  (0) 2021.12.23
day02)제어문 관련 알고리즘  (0) 2021.12.23
day02) 제어문(반복문)  (0) 2021.12.22
day01) 제어문(조건문)  (0) 2021.12.21

댓글