티스토리 뷰
■홀수 짝수 판단
홀수와 짝수를 판단하는 여러가지 코드가 있을 수 있다.
내가 경험한 OddEven클래스의 변화과정을 부끄럽지만 공유하고자 한다.
●OddEvenManager의 내용
import java.util.Scanner; public class OddEvenManager { public static void main(String [] args) { Scanner scanner = new Scanner(System.in); System.out.print("숫자를 입력하시오 : "); int input = scanner.nextInt(); boolean statusFalg; OddEven oddeven = new OddEven(); statusFalg=oddeven.judge(input); if(statusFalg==true) System.out.println("짝수입니다."); else System.out.println("홀수입니다."); } }
●첫번째 OddEven 클래스
public class OddEven { boolean judge(int n) { if(n<0) n=n*-1; if(n%2==0) return true; else return false; } }
정말 정직하게 홀수와 짝수를 구분했고, 음수입력을 대비하여 -1을 곱해서 처리하는 센스가 보인다.
●두번째 OddEven 클래스
public class OddEven { boolean judge(int n) { if(n<0) n*=(-1); return ((n%2==0) ? true : false); } }코드를 줄이라는 오더와 함께 삼항연산자로 변경한다. 자연스러운 수순이다.
●세번째 OddEven 클래스
public class OddEven { boolean judge(int n) { return ((Math.abs(n) % 2 == 0) ? true : false); } }Math클래스도 써본다.
●마지막으로 수정 한 OddEven 클래스
public class OddEven { boolean judge(int n) { return ((n&1) == 1); } }
1,2,3 모두 출제자의 의도에 맞지 않았다.
정답은 비트연산자를 이용한 결과값 계산이다.
홀수는 1과 &(AND)연산하면 결과값이 항상 1이다.
짝수는 1과 &(AND)연산하면 결과값이 항상 0이다.
끝이다. 이게 출제자의 의도였다.
아직 멀었고, 점점 배워가는 중이다.
●수정한 OddEven 클래스를 고려한 OddEvenManager의 간소화
import java.util.Scanner; public class OddEvenManager { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("숫자를 입력하시오 : "); int input = scanner.nextInt(); boolean statusFalg; OddEven oddeven = new OddEven(); statusFalg = oddeven.judge(input); if (statusFalg) System.out.println("홀수입니다."); else System.out.println("짝수입니다."); } }
'ICT Eng > JAVA' 카테고리의 다른 글
[JAVA] DI(Dependency Injection)를 이용한 빈 의존성 관리 (0) | 2017.09.14 |
---|---|
[JAVA] Thread의 interrupt() 메소드(feat. Thread.stop()) (6) | 2017.04.10 |
[JAVA] Static Keyword 와 Method Area (메소드 영역) (3) | 2017.03.13 |
[JAVA] String = " " vs new String(" ") 의 차이 (9) | 2017.03.03 |
[JAVA] Knuth-Morris-Pratt Algorithm, KMP 알고리즘 구현 (0) | 2016.08.15 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 시간복잡도
- Algorithm
- 레드블랙트리
- 한밭대학교
- Spring
- 알고리즘
- Vue.js
- 무선통신소프트웨어연구실
- AWS
- springboot
- 인프런
- 한밭이글스
- 자바
- Spring Boot
- Wisoft
- vuex
- JPA
- Java
- vuejs
- Raspberry Pi
- github
- RBT
- 라즈베리파이
- ORM
- 젠킨스
- IT융합인력양성사업단
- 스프링부트
- 정렬
- Recursion
- 순환
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함