문제 - 이차원 배열을 사용하여 단어 퀴즈 만들기
전체 코드 - 더보기 클릭
더보기
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차원배열과 동일)
이 글을 참고해주세요
그럼 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
'JAVA > java 실습' 카테고리의 다른 글
[자바JAVA] 클래스 - Time클래스로 보는 private접근 제어자, getter, setter, 매개변수가있는 생성자, toString오버라이딩 (0) | 2020.10.08 |
---|---|
[자바JAVA] 객체지향1 - 클래스와 객체 . Tv클래스로 알아보는 객체배열, 멤버호출방법, 객체주소변경, 향상된 for문 (0) | 2020.10.07 |
[자바JAVA] 이차원 배열 , 점수 총점 평균을 표처럼 나타내기 (0) | 2020.10.06 |
[자바JAVA] 일차원배열 - 향상된 for문, 배열에서 값 하나씩 가져오기 (0) | 2020.09.29 |
[자바JAVA]일차원배열 - 버블소팅, 배열 오름차순으로 정렬하기, 내림차순 정렬하기 (0) | 2020.09.28 |