JAVA/JAVA1
JAVA1_day10 | 조건문 if문 연습문제
우방이
2017. 12. 21. 00:18
문제1. 1부터 99까지의 정수를 입력받고,
정수에 3,6,9 중 하나가 있는 경우 "박수짝"을 출력하고, 두개가 있는 경우 "박수짝짝" 을 출력하는 프로그램을 작성해보자.
ex. 입력된 수가 13인 경우, "박수짝"을 36인 경우 "박수짝짝"을 출력하면 된다.
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 31 32 | package ifex; import javax.swing.JOptionPane; public class IfTest11 { public static void main(String[] args) { String num = JOptionPane.showInputDialog("정수 입력(1~99)"); int numLength = num.length(); int count = 0; for (int i = 0; i < numLength; i++) { if ((int)(num.charAt(i) % 3) == 0) { count++; } } switch (count) { case 1: JOptionPane.showMessageDialog(null, "박수짝"); break; case 2: JOptionPane.showMessageDialog(null, "박수짝짝"); break; default: JOptionPane.showMessageDialog(null, "박수 못 침!"); } } } | cs |
# 설명
Line 9: 입력한 정수(문자열)의 길이를 반환한다.
Line 13: charAt(index) 의 반환형은 char형이다.
내부적으로 아스키코드 정수로 계산되기 때문에 사칙연산을 사용할 수는 있지만 예상한 값과 다를 수 있다.
때문에 int형으로 형 변환을 한 다음에 사칙연산을 해야된다.
문제2. 2자리 정수(10~99) 사이를 입력받고,
십의 자리와 일의 자리가 같은지 판별하여 출력하는 프로그램을 작성해보자.
ex. 2자리 수 정수 (10~99): 77 > "Yes! 10의 자리와 1의 자리가 같습니다."
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 | package ifex; import javax.swing.JOptionPane; public class IfTest12 { public static void main(String[] args) { // 첫번째 방법 // String num = JOptionPane.showInputDialog("2자리 정수입력"); // if(num.charAt(0) == num.charAt(1)) { // JOptionPane.showMessageDialog(null, "Yes! 10의 자리와 1의 자리가 같습니다."); // } else { // JOptionPane.showMessageDialog(null, "No! 10의 자리와 1의 자리가 같지 않습니다."); // } // 두번째 방법 int num = Integer.parseInt(JOptionPane.showInputDialog("2자리 정수입력")); if (num % 11 == 0) { JOptionPane.showMessageDialog(null, "Yes! 10의 자리와 1의 자리가 같습니다."); } else { JOptionPane.showMessageDialog(null, "No! 10의 자리와 1의 자리가 같지 않습니다."); } } } | cs |
# 설명
Line 8~15: 입력받은 정수(문자열)를 한 자리씩 비교하여 출력한다.
Line 17~24: 십의 자리와 일의 자리가 같다면 11의 배수가 된다. 때문에 11로 나눈 나머지가 0일 때를 비교하여 출력한다.