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());
}
}
※ 지금은 배우고 있는 중이라서 이렇게 짰지만 실무에서는 한 개의 클래스는 한 개의 기능만을 수행해야한다.
'쌍용강북교육센터 > 7월' 카테고리의 다른 글
0715_MemberVO : 회원 1명이 가지고 있는 정보를 저장하는 저장소 (0) | 2021.07.16 |
---|---|
0714_복습_객체지향? 클래스? 필드+메소드? (2) | 2021.07.15 |
0714_Ex12_객체 배열 (0) | 2021.07.15 |
0714_Ex11_method : 비정형인자 (0) | 2021.07.15 |
0714_Ex10_overloading : 오버로딩 (0) | 2021.07.14 |