Java - 기본기

11. String 배열의 선언과 생성, 커맨드라인에서 입력받기(feat. 가위바위보 게임)

TerianP 2021. 10. 13.
728x90

1. String 배열의 생성&선언

  • String 배열은 기본형이 아닌 참조형!! 이 때문에 기본값에 'null'이 들어감
String[] name = new String[3]; // 3개의 문자열을 담을 수 있는 배열을 생성
name = {"anne", "pray", "Reon"}
  • String 활용해서 가위바위보 게임 만들기!! 내가 만들 가위바위보 게임의 조건은 다음과 같다.
    • 조건 1. while, switch 사용하기 : 1,2,3으로 입력받고 99로 끝내기(if 문 두번 사용하지 않기) 
    • 조건 2. String 배열 사용하기
    • 조건 3. Buffer 사용해서 입력받기(출력은 println 사용하기)
    • 여기서 좀 더 고치면 출력도 bufferedWriter 로 하는 방법과 코드를 줄이는 방법 정도?
import java.io.*;
import java.util.Arrays;

public class Practice_18_2 {
	public static void main(String[] args) throws IOException{
		string_1();
	}

	static void string_1() throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

		String[] strArr = { "가위", "바위", "보"};
		System.out.println(Arrays.toString(strArr));



		menu :
			while(true) { // 무한 반복
			int n = (int)(Math.random()*3); // 0 ~ 2, 배열에서 임의의 숫자 가져오기
			//		System.out.println(strArr[n]);
			System.out.println();
			System.out.println("가위바위보 선택해주세요 : 1.가위, 2.바위, 3.보");
			System.out.println("끝내려면 99 를 입력해주세요");

			int num = Integer.parseInt(br.readLine());

			if(num==99) { // 99 입력받으면 끝내기
				break menu;
			}


			switch(num) { // switch 문 사용하기, num이 각각 번호일때
			case 1:
				if(strArr[n]=="가위") {
					System.out.println("당신의 선택 : 가위");
					System.out.println("컴퓨터의 선택 : "+strArr[n]);
					System.out.println("무승부입니다");
				}else if(strArr[n]=="바위"){
					System.out.println("당신의 선택 : 가위");
					System.out.println("컴퓨터의 선택 : "+strArr[n]);
					System.out.println("당신이 졌습니다");
				}else if(strArr[n]=="보") {
					System.out.println("당신의 선택 : 가위");
					System.out.println("컴퓨터의 선택 : "+strArr[n]);
					System.out.println("당신이 이겼습니다");
				}
				break;
			case 2:
				if(strArr[n]=="가위") {
					System.out.println("당신의 선택 : 바위");
					System.out.println("컴퓨터의 선택 : "+strArr[n]);
					System.out.println("당신이 이겼습니다");
				}else if(strArr[n]=="바위"){
					System.out.println("당신의 선택 : 바위");
					System.out.println("컴퓨터의 선택 : "+strArr[n]);
					System.out.println("무승부 입니다");
				}else if(strArr[n]=="보") {
					System.out.println("당신의 선택 : 바위");
					System.out.println("컴퓨터의 선택 : "+strArr[n]);
					System.out.println("당신이 졌습니다");
				}
				break;
			case 3:
				if(strArr[n]=="가위") {
					System.out.println("당신의 선택 : 보");
					System.out.println("컴퓨터의 선택 : "+strArr[n]);
					System.out.println("당신이 졌습니다");
				}else if(strArr[n]=="바위"){
					System.out.println("당신의 선택 : 보");
					System.out.println("컴퓨터의 선택 : "+strArr[n]);
					System.out.println("당신이 이겼습니다");
				}else if(strArr[n]=="보") {
					System.out.println("당신의 선택 : 보");
					System.out.println("컴퓨터의 선택 : "+strArr[n]);
					System.out.println("무승부입니다");
				}
				break;
			}

		}
		br.close();
		bw.flush();
		bw.close();
	}
}

 

2. 커맨드 라인으로 입력받기

public class Practice_19 {
	public static void main(String[] args) {
		System.out.println("매개변수의 개수 : "+args.length);
		
		for(int i=0; i<args.length; i++) {
			System.out.println("args ["+i+"] = "+args[i]);
		}
	}

 

위와 같은 코드가 있을 때 기본적으로 입력받을때는 sacnner 를 사용하거나 bufferedreader 를 사용해야하는데 이러한 방법이 아니라 커맨드 라인과 이클립스 args 를 이용해 입력 받을 수 있다.

아무것도 입력받지 않고 코드를 바로 실행한 경우

이클립스에서 바로 출력하는 방법은 다음과 같다.

1. 입력할때 run -> run configurations -> Arguments 로 들어간다.

2. Arguments 에 내용을 입력한다.

3. Run 을 눌러 실행

123 45 hello world 입력
Arguments에서 입력한 내용 출력

Arguments 에 적어놓은 문자들이 String[] args 로 넘어가고 해당 내용들이 출력된다.

 

두번째는 cmd 를 이용하는 방법이다. cmd를 이용할 때는 .java 파일이 아닌 .class 파일을 사용해야한다.

1. 먼저 이클립스에서 Art+Enter 를 눌러 Location 에서 해당 위치를 .java 파일의 위치를 확인할 수 있고, .class 파일은 src 에서 bin 폴더안에서 찾을 수 있다.

Location 에서 위치 확인 가능, 오른쪽 버튼 누르면 바로 해당 위치의 폴더가 열린다.
.class 파일은 bin 위치에 있다.

2. 이후 cmd 창을 열어 bin 폴더까지 이동한 후 명령어를 실행한다.

3. 명령어는 java [패키지 이름].[클래스파일 이름] 

나는 패키지 이름이 day19 이고 클래스파일 이름이 Practice_19 였다.

4. java [패키지 이름].[클래스파일 이름] [파라미터1] [파라미터2] -- 이런식으로 파라미터를 붙여서 출력할 수 있다.

요렇게 출력 할 수 있다

 

댓글