반복문 & 조건문
FizzBuzz 예제
- 사용자로부터 값을 입력 받는다
- 5의 배수는 fizz
- 7의 배수는 buzz
- 5와 7의 최소 공배수 fizzbuzz
package comfor;
import java.util.Scanner;
class fizzBuzzIF
{
Scanner sc = new Scanner(System.in);
public int number;
public void getUser()
{
fizzBuzzIF n1 = new fizzBuzzIF();
System.out.print("값을 입력하세요[Limit]:");
int fizz = sc.nextInt();
this.number = fizz;
n1.SetUser(number);
}
public void SetUser(int number)
{
for ( int i = 1; i<=number; i++)
{
if(i % 5 == 0)
{
System.out.println("Fizz :"+i);
}
if(i % 7 == 0)
{
System.out.println("Buzz : "+i);
}
if(i % 7 == 0 && i % 5 ==0)
{
System.out.println("FizzBuzz :"+i);
}
}
}
}
public class FizzBuzz2 {
public static void main(String[] args) {
FizzBuzz2 user1 = new FizzBuzz2();
fizzBuzzIF fbi = new fizzBuzzIF();
int i;
fbi.getUser();
}
}
----------------------------------------------------
값을 입력하세요[Limit]:35
Fizz :5
Buzz : 7
Fizz :10
Buzz : 14
Fizz :15
Fizz :20
Buzz : 21
Fizz :25
Buzz : 28
Fizz :30
Fizz :35
Buzz : 35
FizzBuzz :35
야구게임
Tusu
package comfor;
import java.util.Random;
public class Tusu {
private int number;
public void setNumber() {
int[] nums = {1,2,3,4,5,6,7,8,9};
for(int i = 0; i<3; i++)
{
int randomIndex = i + (int)(Math.random() * (9-i));
int temp = nums[i];
nums[i] = nums[randomIndex];
nums[randomIndex] = temp;
}
this.number = nums[0] * 100 + nums[1] * 10 + nums[2];
}
public int getNumber()
{
return number;
}
}
Taja
package comfor;
import java.util.Scanner;
public class Taja {
private int[] userGuess;
private boolean correct;
public void setUserGuess(int[] userGuess) {
this.userGuess = userGuess;
}
public boolean isCorrect() {
return correct;
}
public void setCorrect(boolean correct) {
this.correct = correct;
}
public void evaluateGuess(int targetNumber) {
int strike = 0;
int ball = 0;
for (int i = 0; i < 3; i++) {
if (userGuess[i] == targetNumber % 10) {
strike++;
} else {
for (int j = 0; j < 3; j++) {
if (userGuess[i] == targetNumber / 100 && userGuess[j] == (targetNumber / 10) % 10 && i != j) {
ball++;
}
}
}
}
if (strike == 3) {
correct = true;
} else {
System.out.println(strike + "S " + ball + "B");
}
}
}
Machine
package comfor;
public class Machine {
public void if_case(Tusu tusu, Taja taja) {
int targetNumber = tusu.getNumber();
taja.evaluateGuess(targetNumber);
}
}
Main
package comfor;
import java.util.Scanner;
public class Baseball {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Taja taja = new Taja();
Tusu tusu = new Tusu();
Machine machine = new Machine();
tusu.setNumber();
for (int j = 1; j <= 4; j++) {
System.out.println("3개의 숫자를 입력하세요 (1부터 9까지 중복되지 않게): ");
int[] userGuess = new int[3];
for (int i = 0; i < 3; i++) {
userGuess[i] = sc.nextInt();
}
taja.setUserGuess(userGuess);
machine.if_case(tusu, taja);
if (taja.isCorrect()) {
System.out.println("정답입니다!");
break;
} else {
System.out.println("다시 시도하세요.");
}
}
sc.close();
}
}
달의 무게
package com.step3;
import java.util.Scanner;
class MoonWeight{
int getUser() {
Scanner sc = new Scanner(System.in);
int user = sc.nextInt();
return user;
}
double account(int earth) {
double moon = 0.0;
moon = (earth*17)/100.0;
return moon;
}
}
public class MoonWeightMain {
public static void main(String[] args) {
System.out.println("당신의 몸무게를 입력하세요.");
MoonWeight mw = new MoonWeight();
int user = mw.getUser();
System.out.println("사용자가 입력한 값은 " +user+" 입니다.");
System.out.println("달의 몸무게는 "+mw.account(user) + " 입니다.");
}
}
몸무게 입력
package com.step3;
import java.util.Scanner;
class MoonWeight{
double account(int earth) {
double moon = 0.0;
moon = (earth*17)/100.0;
return moon;
}
}
public class MoonWeightMain {
public static void main(String[] args) {
System.out.println("당신의 몸무게를 입력하세요.");
Scanner sc = new Scanner(System.in);
int user = sc.nextInt();
System.out.println("사용자가 입력한 값은 " +user+" 입니다.");
MoonWeight mw = new MoonWeight();
System.out.println("달의 몸무게는 "+mw.account(user) + " 입니다.");
}
}
JFrame
package comfor;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
public class RandomGameView extends JFrame implements ActionListener{
JPanel jp_center = new JPanel();
JPanel jp_east = new JPanel();
JTextArea ta_result = new JTextArea(10,50);
JTextField tf_input = new JTextField("",10);
JButton jbtnNew = new JButton("새게임");
JButton jbtnDap = new JButton("정답");
JButton jbtnClear = new JButton("지우기");
JButton jbtnExit = new JButton("종료");
Font f = new Font("Thoma", Font.BOLD, 18);
public void initDisplay(){
tf_input.addActionListener(this);
jp_center.setLayout(new FlowLayout());
jp_center.setBackground(Color.green);
jp_center.add("Center", ta_result);
jp_center.add("South", tf_input);
jp_east.setBackground(Color.black);
jp_east.setLayout(new GridLayout(4,1,2,2));
jp_east.add(jbtnNew);
jp_east.add(jbtnDap);
jp_east.add(jbtnClear);
jp_east.add(jbtnExit);
this.add("Center", jp_center);
this.add("East", jp_east);
this.setTitle("숫자맞추기게임");
this.setSize(600,400);
this.setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
JFrame.setDefaultLookAndFeelDecorated(true);
RandomGameView rgv = new RandomGameView();
rgv.initDisplay();
}
@Override
public void actionPerformed(ActionEvent e) {
Object obj = e.getSource();
String command = e.getActionCommand();
if("1".equals(command)) {
System.out.println(command);
ta_result.append(command);
}
else if(obj == tf_input) {
ta_result.append(tf_input.getText()+"\n");
tf_input.setText("");
}
}
}
이벤트 동작 처리
@Override
public void actionPerformed(ActionEvent e) {
Object obj = e.getSource();
String command = e.getActionCommand();
if("1".equals(command)) {
System.out.println(command);
ta_result.append(command);
}
else if(obj == tf_input) {
ta_result.append(tf_input.getText()+"\n");
tf_input.setText("");
}
}