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일 때를 비교하여 출력한다.