1. 년도를 매개변수로 넘겨 받아 띠를 구하는 메소드

class Test13 {
	String tti; // 띠를 구하는 것이니까 나중에 결과값은 문자열 // 인스턴스 변수, 필드 
    
    public String tti(int year) {
    	// 인스턴스 메소드. 가인수 매개변수로 년도를 입력 받는다.
        // 리턴 타입은 String(문자열) 
        // 이 입력받은 수를 가지고 띠를 출력할 수 있도록 만들어야함
        // 12로 나눈 나머지가 0일 때 원숭이
        // 12로 나눈 나머지가 1일 때 닭
        // 12로 나눈 나머지가 2일 때 개
        // -> 나머지가 1개씩 늘어남에 따라 원숭이 닭 개 돼지 쥐 소 호랑이 토끼 용 뱀 말 양이 나온다.
        String []t = new String[] {"원숭이","닭",개","돼지","쥐","소","호랑이","토끼","용","뱀","말","양"};
        // 배열의 첫번째를 나타낼 때는 String[0] 이므로
        return t[year%12]; 	
    } 
}

2. 정수를 매개변수로 넘겨받아 정수의 자릿수 구하기

public int numberLen(int n) {		
		
/*		
		int len=1;
		if(n < 0) {
			n = -n;
		}
		while(n>=10) {
			n=n/10;
			len++;
		}
		return len;	
*/		
		if( n < 0 ) {
			n = -n; // 음수의 경우 양수로 바꿔주고 삼항연산자를 실행
		}
		return n>=10 ? 1+numberLen(n/10) : 1; 
        // 10으로 나누었을 때 몫이 1이면 두자리 몫이 2이면 세자리이므로 +1이고 
        // 재귀호출로 10으로 나누어질때마다 1을 더해준다.
        // 한자릿수의 경우 (1~9)는 1로 값을 되돌려준다.
	}

3. 서로 다른 3자릿수의 난수 생성하기

public int number3(){
		int m1, m2, m3;
		
		m1 = (int)(Math.random()*9)+1; // 1~9 // 100의자리
        // Math.random 은 0< Math.random<1 이렇게 수를 생성해 주므로  
        // 1<Math.random<10 
        // 1.xx ~ 9.xx 의 임의의 수를 생성하게 한다.
        // 이것은 int 형에 저장될 때 정수형으로 저장되므로
        // 1~9 사이의 수가 m1에 저장된다. m1은 백의 자리이므로 0이 될 수 없음.
		do {
			m2 = (int)(Math.random()*10); // 0~9
		} while(m1 == m2);
        // m2는 십의 자리이므로 0이 와도 된다. 하지만 서로 다른 수로 구성해야 하므로
        // m1에서 생성된 수와 같으면 안된다.
		
		do {
			m3 = (int)(Math.random()*10); // 0~9
		} while(m1 == m3 || m2 == m3);
        // m3는 일의 자리이므로 0이 와도 된다. 하지만 서로 다른 수로 구성해야 하므로
        // m1과 m2에서 생성된 수와 같으면 안된다.
		
		return m1*100 + m2*10 + m3;
	}
}

잘 만들었는지 확인해보자

public class Ex13 {
	public static void main(String[] args) {
		Test13 ob = new Test13();
		
		System.out.println(ob.tti(2021));
		System.out.println(ob.numberLen(345));
		System.out.println(ob.numberLen(-100));
		System.out.println(ob.number3());
	}
}

※ 지금은 배우고 있는 중이라서 이렇게 짰지만 실무에서는 한 개의 클래스는 한 개의 기능만을 수행해야한다.

 

+ Recent posts