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();
}
}
실행결과
'자바 > 명품 자바 에센셜' 카테고리의 다른 글
명품 자바 에센셜 실습문제 8장 (4) | 2016.01.22 |
---|---|
명품 자바 에센셜 실습문제 7장 (1) | 2016.01.22 |
명품 자바 에센셜 실습문제 5장 (0) | 2016.01.21 |
명품 자바에센셜 실습문제 4장 (0) | 2016.01.18 |
명품 자바에센셜 실습문제 3장 (10) | 2016.01.18 |