반응형

1. 다음 main()의 실행 결과 클래스명과 점 값을 연결하여 “MyPoint(3,20)”이 출력되도록 MyPoint 클래스를 작성하라.

코드

package chapter6;

public class MyPoint {

int x,y;

MyPoint(int x, int y) {

this.x = x; this.y = y;

}

public String toString() { 

return getClass().getName() + "(" + x + "," + y+ ")";

}

public static void main(String [] args) {

MyPoint a = new MyPoint(3,20);

System.out.println(a);

}

}

실행결과


2. Scanner를 이용하여 한 라인을 읽고, 공백으로 분리된 어절이 몇 개인지 출력을 반복하는 프로그램을 작성하라. "exit"이 입력되면 종료한다.

코드

package chapter6;

import java.util.Scanner;

import java.util.StringTokenizer;

public class WordCount {

    public static void main(String[] args)

    {

        Scanner scan = new Scanner(System.in);

        while(true)

        {

            String sen = scan.nextLine();

            if(sen.equals("exit"))

            {

                System.out.print("종료합니다...");

                scan.close(); 

                break;

            }

            StringTokenizer st = new StringTokenizer(sen, " ");

            int n = st.countTokens();

            System.out.println("어절 개수는 " + n);

        }

    }

}

실행결과


3. 1에서 3까지의 난수를 3개 생성한 뒤 나란히 한 줄에 출력하라. 모두 같은 수가 나올 때까지 반복 출력하고, 모두 같은 수이면 "성공"을 출력하고 종료하는 프로그램을 작성하라.

코드

package chapter6;

public class Gambling {

public static void main(String[] args) {

int [] n = new int[3];


while(true) {

for(int i=0;  i<n.length; i++) {

n[i] = (int)(Math.random()*3 + 1);

System.out.print(n[i]+"\t");

}

System.out.println();

if(n[0] == n[1] && n[1] == n[2]) {

System.out.print("성공");

break;

}

}

}

}

실행결과


4. 다음과 같이 +로 연결된 덧셈 식을 입력받아 덧셈 결과를 출력하는 프로그램을 작성하라. StringTokenizer와 Integer.parseInt(), String의 trim()을 활용하라.

코드

package chapter6;

import java.util.Scanner;

import java.util.StringTokenizer;

public class Addition {

    public static void main(String[] args){

        Scanner scanner = new Scanner(System.in);

        String a = scanner.nextLine();

        StringTokenizer st = new StringTokenizer(a, "+");

        int n = st.countTokens();

        int [] c = new int[n];

        int sum = 0;

        while(st.hasMoreTokens()){

            for(int i=0; i<n; i++){

                String token = st.nextToken();

                String b = token.trim();

                c[i] = Integer.parseInt(b);

                sum += c[i];

            }

        }

        System.out.print("합은  " + sum);

        scanner.close();

    }

}

실행결과

5. 다음 코드를 수정하여 Adder 클래스는 util 패키지에, Main 클래스는 app패키지에 작성하여 응용프로그램을 완성하고 실행시켜라.

코드

//app 패키지

package app;


import util.Adder;



public class Main {

public static void main(String[] args) {

Adder adder = new Adder(2, 5);

System.out.println(adder.add());

}

}


//util 패키지

package util;


public class Adder {

private int x, y;

public Adder(int x, int y) { this.x = x; this.y = y; }

public int add() { return x + y; }

}

실행결과

6. Math.random()의 난수 발생기를 이용하여 사용자와 컴퓨터가 하는 가위바위보 게임을 만들어보자. 가위, 바위, 보는 각각 1, 2, 3 키이다. 사용자가 1, 2 ,3 키 중 하나를 입력하면 동시에 프로그램에서 난수 발생기를 이용하여 1, 2, 3 중에 한 수를 발생시켜 컴퓨터가 낸 것을 결정한다. 그리고 사용자와 컴퓨터 둘 중 누가 이겼는지를 판별하여 승자를 출력한다.


코드

package chapter6;


import java.util.Scanner;


public class Kawibawibo 

{

    public static void main(String[] args)

    {

        Scanner scanner = new Scanner(System.in);

        String []rps = {"가위", "바위", "보"};

        while(true)

        {

            System.out.println("가위(1), 바위(2), 보(3), 끝내기(4)>>");

            int i = scanner.nextInt() - 1;

            int ran = (int)(Math.random()*3);

            

            if(i >= 3)

            {

                System.exit(0);

                break;

            }

            

            System.out.println("사용자 " + rps[i] + " : " + "컴퓨터 " + rps[ran]);

            if((i + 2) % 3 == ran)

                System.out.println("사용자가 이겼습니다.");

            else if(i == ran)

                System.out.println("비겼습니다.");

            else

                System.out.println("컴퓨터가 이겼습니다.");

        }        

        scanner.close();

    }

}

실행결과


반응형

+ Recent posts