JAVA/java 실습

[자바JAVA] 이차원배열 - String 이차원 배열 ( 3차원배열과 같음)로 단어퀴즈 만들기

자바칩 프라푸치노 2020. 10. 6. 17:28

문제 - 이차원 배열을 사용하여 단어 퀴즈 만들기

전체 코드 - 더보기 클릭

 

더보기

 

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
33
34
import java.util.Scanner;
 
public class Array_Ex3 {
 
    public static void main(String[] args) {
        //String[][] 은 엄밀히 말하자면 3차원 배열에 해당이 되나, String클래스의 toString()가 오버라이딩
        //이 되어있어 마치 2차원 배열과 같이 사용하는 것처럼 보인다. 하지만 메모리로 그려보면 충분히
        //왜 3차원 배열인지 알게 된다.
        String[][] words = new String[][] {
                                                {"chair" , "의자"},// word[0][0], word[0][1]
                                                {"computer" , "컴퓨터"},// word[1][0], word[1][1]
                                                {"integer""정수"}// word[2][0], word[2][1]
                                        };
 
        Scanner scanner = new Scanner(System.in);
        
        for (int i = 0; i < words.length; i++) {
            System.out.printf("문제%d. %s의 뜻은?", (i+1), words[i][0]);
            String tmp = scanner.next();//값 비교
            
            if (tmp.equals(words[i][1])) {
                System.out.println("정답입니다.");
            }
            else {
                System.out.println("틀렸습니다. 정답은 " + words[i][1+ "입니다!");
            }
        }
        scanner.close();
                                        
                                        
    }
}
 
 
cs

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import java.util.Scanner;
 
public class Array_Ex3 {
 
    public static void main(String[] args) {
        //String[][] 은 엄밀히 말하자면 3차원 배열에 해당이 되나, String클래스의 toString()가 오버라이딩
        //이 되어있어 마치 2차원 배열과 같이 사용하는 것처럼 보인다. 하지만 메모리로 그려보면 충분히
        //왜 3차원 배열인지 알게 된다.
        String[][] words = new String[][] {
                                                {"chair" , "의자"},// word[0][0], word[0][1]
                                                {"computer" , "컴퓨터"},// word[1][0], word[1][1]
                                                {"integer""정수"}// word[2][0], word[2][1]
                                        };
 
                        
                                        
    }
}
 
 
cs

먼저 String2차원 배열을 초기화 해주었습니다.

String 1차원 배열은 2차원배열과 같은데요

2020/09/27 - [§개발자 되기 프로젝트§/java 실습] - 자바 1차원 배열 - String배열 (2차원배열과 동일)

 

자바 1차원 배열 - String배열 (2차원배열과 동일)

안녕하세요 이번에는 String 배열에 대해 알아보겠습니다. 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 package sec01_firstArray; import java.util.Arrays; public class Array_Ex4..

sso-feeling.tistory.com

이 글을 참고해주세요

 

그럼 2차원배열은 3차원 배열과 같습니다.

메모리 상으로 확인해보자면

 

이렇게 됩니다.

그러나 String의 toString이 값 자체를 출력하도록 오버라이딩이 되어있기에

이차원 배열로 활용을 하게 됩니다.

 

 

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
33
34
import java.util.Scanner;
 
public class Array_Ex3 {
 
    public static void main(String[] args) {
        //String[][] 은 엄밀히 말하자면 3차원 배열에 해당이 되나, String클래스의 toString()가 오버라이딩
        //이 되어있어 마치 2차원 배열과 같이 사용하는 것처럼 보인다. 하지만 메모리로 그려보면 충분히
        //왜 3차원 배열인지 알게 된다.
        String[][] words = new String[][] {
                                                {"chair" , "의자"},// word[0][0], word[0][1]
                                                {"computer" , "컴퓨터"},// word[1][0], word[1][1]
                                                {"integer""정수"}// word[2][0], word[2][1]
                                        };
 
        Scanner scanner = new Scanner(System.in);
        
        for (int i = 0; i < words.length; i++) {
            System.out.printf("문제%d. %s의 뜻은?", (i+1), words[i][0]);
            String tmp = scanner.next();//값 비교
            
            if (tmp.equals(words[i][1])) {
                System.out.println("정답입니다.");
            }
            else {
                System.out.println("틀렸습니다. 정답은 " + words[i][1+ "입니다!");
            }
        }
        scanner.close();
                            
                                        
    }
}
 
 
cs

다음 코드를 보시면

문제로는 word배열의 [0][0] [1][0] [2][0] 인덱스에 있는 영어를 출력해야하기에

출력을 해주었고

값을 String타입으로 입력받았습니다.

 

만약에 입력받은 값이 word 배열의 [0][1] [1][1] [2][1] 과 같다면 정답입니다.

아니면 틀렸습니다. 정답은 뭐입니다 라고 출력을 해야하기에

if문을 써주었고

String의 값비교는 무조건 .eqauls를 사용해야하기에

if의 조건문에 넣어주었습니다.

이렇게 잘 나오는 것을 확인할 수 있습니다.

728x90