반응형
package hello;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.util.NoSuchElementException;
import java.util.Scanner;
public class FileInputStreamTest1 {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		String src = "c:\\windows\\system.ini";
		try {
			Scanner fileScanner = new Scanner(new FileReader(src));
			String line;
			int lineNumber = 1;
			while(fileScanner.hasNext()) {
				line = fileScanner.nextLine();
				System.out.printf("%4d", lineNumber++);
				System.out.println(":" + line);
			}
			fileScanner.close();
		} catch (FileNotFoundException e) {
			System.out.println("파일을 찾을 수 없습니다.");
		} catch (NoSuchElementException e) {
			System.out.println("파일의 끝에 도달하여 읽을 내용이 없습니다.");
		}finally {
			scanner.close();
		}
	}
}
   1:; for 16-bit app support
   2:[386Enh]
   3:woafont=dosapp.fon
   4:EGA80WOA.FON=EGA80WOA.FON
   5:EGA40WOA.FON=EGA40WOA.FON
   6:CGA80WOA.FON=CGA80WOA.FON
   7:CGA40WOA.FON=CGA40WOA.FON
   8:
   9:[drivers]
  10:wave=mmdrv.dll
  11:timer=timer.drv
  12:
  13:[mci]
반응형
반응형
package gui;

import java.awt.BorderLayout;
import java.awt.GridLayout;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class ComponentDemo1 extends JFrame{
	ComponentDemo1() {
		setTitle("원 넓이 구하기");
		
		setLayout(new BorderLayout(10, 10));
		showNorth();
		
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setSize(300,200);
		setVisible(true);
	}
	void showNorth() {
		JPanel p1 = new JPanel();
		JPanel p2 = new JPanel();
		JPanel panel = new JPanel(new GridLayout(2,0));
		
		JLabel l1 = new JLabel("원의 반지름");
		JLabel l2 = new JLabel("원의 넓이");
		
		JTextField t1 = new JTextField(10);
		JTextField t2 = new JTextField(10);
		t2.setEnabled(false);
		
		p1.add(l1);
		p1.add(t1);
		p2.add(l2);
		p2.add(t2);
		panel.add(p1);
		panel.add(p2);
		
		add(panel, BorderLayout.NORTH);
	}
	public static void main(String[] args) {
		new ComponentDemo1();
	}
}

package gui;

import java.awt.BorderLayout;
import java.awt.Color;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextArea;

public class ComponentDemo2 extends JFrame{
	public ComponentDemo2() {
		setTitle("원 넓이 구하기");
		
		setLayout(new BorderLayout(10, 10));
		showCenter();
		
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setSize(300, 220);
		setVisible(true);
	}
	void showCenter() {
		JPanel panel = new JPanel();
		
		JTextArea area= new JTextArea(30, 20);
		area.setText("이 영역에 원의 넓이를 \n 계산하는 과정이 나타납니다.");
		area.setEditable(false);
		area.setForeground(Color.RED);
		
		panel.add(area);
		
		add(panel, BorderLayout.CENTER);
		
	}
	public static void main(String[] args) {
		new ComponentDemo2();
	}
}

package gui;

import java.awt.BorderLayout;
import java.awt.FlowLayout;

import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class ComponentDemo3 extends JFrame{
	 ComponentDemo3() {
		setTitle("원 넓이 구하기");
		
		setLayout(new BorderLayout(10, 10));
		
		showSouth();
		
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setSize(300, 220);
		setVisible(true);
	}
	 void showSouth() {
		 String[] color = {"red", "blue", };
		 JPanel panel = new JPanel(new FlowLayout(FlowLayout.CENTER, 10,10));
		 
		 JButton cal = new JButton("계산");
		 JComboBox<String> cb = new JComboBox<>(color);
		 JButton reset = new JButton("리셋");
		 
		 panel.add(cal);
		 panel.add(cb);
		 panel.add(reset);
		 
		 add(panel, BorderLayout.SOUTH);
	 }
	 public static void main(String[] args) {
		new ComponentDemo3();
	}
}

통합↓

package gui;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.GridLayout;

import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JTextField;

public class ComponentDemo4 extends JFrame{
	ComponentDemo4() {
		setTitle("원 넓이 구하기");
		
		setLayout(new BorderLayout(10, 10));
		showNorth();
		showCenter();
		showSouth();
		
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setSize(300, 200);
		setVisible(true);
	}
	void showNorth() {
		JPanel p1 = new JPanel();
		JPanel p2 = new JPanel();
		JPanel panel = new JPanel(new GridLayout(2,0));
		
		JLabel l1 = new JLabel("원의 반지름");
		JLabel l2 = new JLabel("원의 넓이");
		
		JTextField t1 = new JTextField(10);
		JTextField t2 = new JTextField(10);
		t2.setEnabled(false);
		
		p1.add(l1);
		p1.add(t1);
		p2.add(l2);
		p2.add(t2);
		panel.add(p1);
		panel.add(p2);
		
		add(panel, BorderLayout.NORTH);
	}
	void showCenter() {
		JPanel panel = new JPanel();
		
		JTextArea area= new JTextArea(30, 20);
		area.setText("이 영역에 원의 넓이를 \n 계산하는 과정이 나타납니다.");
		area.setEditable(false);
		area.setForeground(Color.RED);
		
		panel.add(area);
		
		add(panel, BorderLayout.CENTER);
	}
	void showSouth() {
		String[] color = {"red", "blue", };
		 JPanel panel = new JPanel(new FlowLayout(FlowLayout.CENTER, 10,10));
		 
		 JButton cal = new JButton("계산");
		 JComboBox<String> cb = new JComboBox<>(color);
		 JButton reset = new JButton("리셋");
		 
		 panel.add(cal);
		 panel.add(cb);
		 panel.add(reset);
		 
		 add(panel, BorderLayout.SOUTH);
	}
	public static void main(String[] args) {
		new ComponentDemo4();
	}
}

package gui;

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.WindowConstants;

public class EventExams extends JFrame implements ActionListener {
	int index = 0;
	String[] msgs = {"First", "Second", "Third"};
	JButton button1 = new JButton("<<");
	JButton button2 = new JButton(">>");
	JButton button3 = new JButton("msg[0]");
	
	public EventExams() {
		BorderLayout layout = new BorderLayout();
		setLayout(layout);
		button1.addActionListener(this);
		button2.addActionListener(this);
		button3.setEnabled(false);
		add(button1, BorderLayout.WEST);
		add(button2, BorderLayout.EAST);
		add(button3, BorderLayout.CENTER);
		setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
		setSize(300, 100);
		setVisible(true);
	}
	@Override
	public void actionPerformed(ActionEvent e) {
		Object obj = e.getSource();
		if(obj == button1) {
			index --;			
		}
		else if (obj == button2) {
			index ++;
		}
		if(index > 2) {
			index = 0;
		}
		else if(index < 0) {
			index = 2;
		}
		
		button3.setText(msgs[index]);
	}
	public static void main(String[] args) {
		EventExams app = new EventExams();
	}
	
}

package gui;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class IndepClassListener extends JFrame {
	JTextField t1, t2;
	JTextArea area;
	JButton cal,reset;
	JComboBox<String> cb;
	
	public IndepClassListener() {
		 setTitle("원 넓이 구하기");
		 setLayout(new BorderLayout(10, 10));
		 showNorth();
		 showCenter();
		 showSouth();
		 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		 setSize(300, 220);
		 setVisible(true);
	
	}
	void showNorth() {
		JPanel p1 = new JPanel();
		JPanel p2 = new JPanel();
		JPanel panel = new JPanel(new GridLayout(2,0));
		
		JLabel l1 = new JLabel("원의 반지름");
		JLabel l2 = new JLabel("원의 넓이");
		
		t1 = new JTextField(10);
		t2 = new JTextField(10);
		t2.setEnabled(false);
		
		p1.add(l1);
		p1.add(t1);
		p2.add(l2);
		p2.add(t2);
		panel.add(p1);
		panel.add(p2);
		
		add(panel, BorderLayout.NORTH);
	}
	void showCenter() {
		JPanel panel = new JPanel();
		
		area= new JTextArea(30, 20);
		area.setText("이 영역에 원의 넓이를 \n 계산하는 과정이 나타납니다.");
		area.setEditable(false);
		area.setForeground(Color.RED);
		
		panel.add(area);
		
		add(panel, BorderLayout.CENTER);
	}
	void showSouth() {
		String[] color = {"red", "blue", };
		 JPanel panel = new JPanel(new FlowLayout(FlowLayout.CENTER, 10,10));
		 
		 cal = new JButton("계산");
		 cal.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				if(t1.getText().isEmpty() == true) {
					 System.out.println("반지름을 입력하세요");
				}
				else {
					String s = t1.getText();
					double radius = Double.parseDouble(s);
					double result = radius * radius * 3.14;
					t2.setText("" + result);
					area.setText(radius + " * " + radius + " * 3.14 = " + result);
			}}
		});
		 
		 cb = new JComboBox<>(color);
		 reset = new JButton("리셋");
		 reset.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				t1.setText("");
				t2.setText("");
				area.setText("");
				
			}
		});
		 
		 panel.add(cal);
		 panel.add(cb);
		 panel.add(reset);
		 
		 add(panel, BorderLayout.SOUTH);
	}
	public static void main(String[] args) {
		new IndepClassListener();
	}
}

반응형
반응형

로또 추출 번호 게임 

// 로또 추출 번호 게임
package test01;
import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;
public class Test {
	public static void main(String[] args) {
		System.out.println("로또 번호를 추출할 횟수를 입력해주세요 :");
		 Scanner sc = new Scanner(System.in);
		 int play_count = sc.nextInt();
		 
		 for(int i = 1; i <= play_count; i++) {
			 System.out.println(i + "번째: " + making_lottonumber());
		 }
		 sc.close();
	}
	static String making_lottonumber() {
		int [] arr = new int[6];
		Random random = new Random();
		while(true) {
			for(int a = 0; a<6; a++ ) {
				arr[a] = random.nextInt(45) + 1;
			}
			Arrays.sort(arr);
			if(checking_overlap(arr) == true) {
				break;
			}
		}
		return Arrays.toString(arr);
	}
	static boolean checking_overlap (int[] arr) {
		int[] check_arr = new int[46];
		for(int i =0 ;  i<6; i++) {
			check_arr[arr[i]] += 1;
			if(check_arr[arr[i]] == 2) {
				return false;
			}
		}
		return true;
	}
}

 

반응형

'JAVA > 2020 프로그램' 카테고리의 다른 글

[JAVA] 파일 입출력  (0) 2020.01.19
[JAVA] GUI 프로그래밍  (0) 2020.01.12
[JAVA] 랜덤함수를 이용하여 숫자배열 만들기  (0) 2019.12.15
[JAVA] 숫자 출현횟수  (0) 2019.12.15
[JAVA] 가위바위보 게임  (0) 2019.12.08
반응형

1. 배열의 랜덤 숫자 넣고 출력하기 ver1

import java.util.Random;
public class Hello{
public static void main(String[] args) {
	Random rand = new Random();
	final int size = 6;
	int[] array = new int[size];
	for(int i=0; i<10000; i++) {
		array [(int)(Math.random() * 6)]++;
		}
	for(int i=0; i<size; i++) {
		System.out.printf("%3d %3d \n", i+1, array[i]);
	}
	}
}
  1 1628 
  2 1635 
  3 1714 
  4 1670 
  5 1622 
  6 1731 

ver2

import java.util.Random;
public class Hello{
public static void main(String[] args) {
	final int size = 10;
	Random rand = new Random();
	int[] array = new int[size];
	for(int i=0; i<10; i++) {
		array[i] = rand.nextInt(10);
		System.out.print(array[i] + " ");
		}
	}
}
/*
6 4 9 1 2 1 7 2 2 4 
*/

 

반응형

'JAVA > 2020 프로그램' 카테고리의 다른 글

[JAVA] GUI 프로그래밍  (0) 2020.01.12
[JAVA] 로또 번호 추출 프로그램  (0) 2020.01.05
[JAVA] 숫자 출현횟수  (0) 2019.12.15
[JAVA] 가위바위보 게임  (0) 2019.12.08
[JAVA] 별찍기  (0) 2019.12.08
반응형

 

import java.util.Arrays;
import java.util.Scanner;
public class Hello{
public static void main(String[] args) {
	int[] n = {1,2,5,2,4,5,1,5,5,3,3,1};
	int cnt,j;
	for(int i=1; i<=5; i++) {
		for(j=0, cnt = 0; j<n.length; j++) {
			if(i == n[j]) {
				cnt ++;
			}
		}
		System.out.println(i +":" + cnt);
	}
	
	}
}
1:3
2:2
3:2
4:1
5:4
반응형

'JAVA > 2020 프로그램' 카테고리의 다른 글

[JAVA] 로또 번호 추출 프로그램  (0) 2020.01.05
[JAVA] 랜덤함수를 이용하여 숫자배열 만들기  (0) 2019.12.15
[JAVA] 가위바위보 게임  (0) 2019.12.08
[JAVA] 별찍기  (0) 2019.12.08
[JAVA] 알파벳 프로그램  (0) 2019.12.07
반응형

version1

package chap03;
import java.util.Scanner;
import java.util.Random;
public class plus {
	public static void main(String[] args) {
		Scanner s = new Scanner(System.in);
		Random rand = new Random();
		char user='a'; 
		String d = "무승부 ";
		String b = "승리";
		String c = "패배";
		while((user != 'Q')&&(user !='q')) {
			System.out.println("가위는 1, 바위는 2, 보는 3");
			System.out.println("종료를 원하시면 q를 눌러주세요. ");
			System.out.print("숫자를 입력하세요: ");
			user = (s.next()).charAt(0);
			int computer= rand.nextInt(3)+1;
			switch(user){
				case '1' : 
						if(computer==2) {
							System.out.println("컴퓨터는 : "+ computer+ " " + c);
							break;
						}
						else if(computer==3) {
							System.out.println("컴퓨터는 : "+ computer+" " + b);
							break;
						}
						else {
							System.out.println("컴퓨터는 "+ computer+ " " + d);
							break;
						}
				case '2' :
						if(computer==1) {
							System.out.println("컴퓨터는 : "+ computer+" " + b);
							break;
						}
						else if(computer==3) {
							System.out.println("컴퓨터는 : "+ computer+" " + c);
							break;
						}
						else {
							System.out.println("컴퓨터는 "+ computer+ " " + d);
							break;
						}
				case '3' : 
						if(computer==1) {
							System.out.println("컴퓨터는 : "+ computer+ " " + c);
							break;
						}
						else if(computer==2) {
							System.out.println("컴퓨터는 : "+ computer+ " " + b);
							break;
						}
						else {
							System.out.println("컴퓨터는 "+ computer + " " + d);
							break;
						}
				}
		}
	}
}

version2

package test01;
import java.util.Scanner;
public class RpsGame {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		for(int i=0; i < 3; i++) {
			int com = (int)(Math.random() * 10) % 3 + 1;
			int input;
			while(true) {
				System.out.println("입력 [1: 가위 , 2: 바위 3: 보]");
				input = sc.nextInt();
				if(input >= 1 && input <= 3) break;
				System.out.println("가위, 바위, 보 중 하나만 선택해주세요.");
			}
			System.out.println();
			
			if(com == 1) System.out.println("컴퓨터 : 가위");
			else if(com == 2) System.out.println("컴퓨터 : 바위");
			else System.out.println("컴퓨터 : 보");
			
			if(input == 1) System.out.println("사람 : 가위");
			else if(input == 2) System.out.println("사람 : 바위");
			else System.out.println("사람 : 보");
			
			System.out.println("<<결과>>");
			if(com == input) {
				System.out.println("비김");
			} else if (com==1 && input == 2 || com==2 && input==3 || com==3 && input ==1) { 
				System.out.println("사람 win");
			} else {
				System.out.println("컴퓨터 win");
			}
			System.out.println("=============================");
		}
		sc.close();
	}
}
반응형
반응형

※ 별찍기를 쉽게하는 방법 ※

공백이 별을 밀어낸다는 생각으로 구상하면 된다. 별과 공백을 자리를 차지하고 있다는 생각보다는 별이 왼쪽 정렬되어 있을 때 공백이 삼각형을 오른쪽으로 밀어낸다고 생각하면 쉽게 코드를 짤 수 있다.

 

(1) 오른쪽 직각 삼각형 

package chap03;
public class plus {
	public static void main(String[] args) {
		for(int i = 0; i<10; i++) {
			for(int j=10-(i+1); j>=0; j--) {
				System.out.print(" ");
			}
			
			for(int j=0; j < (i+1); j++) {
				System.out.print("*");
			}
			
			System.out.println();
		}
	}
}
/*
          *
         **
        ***
       ****
      *****
     ******
    *******
   ********
  *********
 **********

*/

(2) 숫자를 입력받아 왼쪽 직각 삼각형 출력 

package chap03;
import java.util.Scanner;
public class plus {
	public static void main(String[] args) {
		Scanner s = new Scanner(System.in);
		System.out.print("출력할 행의 개수 : ");
		int temp = s.nextInt();
		for(int i = 1; i<=temp; i++) {
			for(int j=1; j <= i ; j++) {
				System.out.print(j);
			}
			System.out.println();
		}
	}
}
/*
출력할 행의 개수 : 5
1
12
123
1234
12345
*/

(4) 연속한 숫자 삼각형

package chap03;
import java.util.Scanner;
public class plus {
	public static void main(String[] args) {
		Scanner s = new Scanner(System.in);
		System.out.print("출력할 행의 개수 : ");
		int temp = s.nextInt();
		for(int i = 1; i<=temp; i++) {
			for(int j=1; j <= i ; j++) {
				System.out.print(i);
			}
			System.out.println();
		}
	}
}
/*
출력할 행의 개수 : 5
1
22
333
4444
55555
*/

(5) 공백이 포함된 삼각형

package chap03;
import java.util.Scanner;
public class plus {
	public static void main(String[] args) {
		Scanner s = new Scanner(System.in);
		System.out.print("출력할 행의 개수 : ");
		int temp = s.nextInt();
		int k=1;
		for(int i = 1; i <= temp; i++) {
			for(int j = 1; j <= i ; j++) {
				System.out.printf("%-2d",k++);
			}
			System.out.println("");
		}
	}
}
/*
출력할 행의 개수 : 5
1 
2 3 
4 5 6 
7 8 9 10
1112131415
*/

%-2d(왼쪽 정렬)

 

정삼각형 

package chap03;
import java.util.Scanner;
public class plus {
	public static void main(String[] args) {
		Scanner s = new Scanner(System.in);
		System.out.print("출력할 행의 개수 : ");
		int temp = s.nextInt();
		
		for(int i = 1; i <= temp; i++) {
			for(int j = temp; j !=0; j--) {
				System.out.print(" ");
			}
			for(int j = 1; j <= i; j++) {
				System.out.print(i + " ");
			}
			System.out.println("");
			temp --;
		}
	}
}
반응형

'JAVA > 2020 프로그램' 카테고리의 다른 글

[JAVA] 숫자 출현횟수  (0) 2019.12.15
[JAVA] 가위바위보 게임  (0) 2019.12.08
[JAVA] 알파벳 프로그램  (0) 2019.12.07
[JAVA] 소수점 두자리까지 같은 지 확인  (0) 2019.12.07
[JAVA] 윤년계산하기  (0) 2019.12.07
반응형

영어는 1바이트 한글은 2바이트 이기 때문에 한글 한 문자를 치면 "문자가 아닙니다. 한 글자만 입력하세요" 라는 문장이 나오게 된다.

위에 uppercase 는 대문자로 lowercase는 소문자로 바꿔주는 것이고 , At는 한 문자씩 나타내게 해주는 것이고,

조건문 안에 있는 length은 문자의 길이를 나타내는 것이다.

equals ==와 다른데 equals는 문자 자체를 비교하는 것이고, ==는 주소를 비교하는 것이다

 

1. 자음과 모음 판별 프로그램

package chap03;
import java.util.Scanner; // 입력 

public class plus {

	public static void main(String[] args) {
		Scanner s = new Scanner(System.in);
		System.out.print("알파벳을 입력하세요: ");
		String input = s.next().toLowerCase();
		boolean uppercase = input.charAt(0) >= 65 && input.charAt(0) <=90;
		//At 는 한글자, uppercase는 대문자 
		boolean lowercase = input.charAt(0) >= 97 && input.charAt(0) <=122;
		// lowercase는 소문자 
		boolean vowels = input.equals("a") || input.equals("e") || input.equals("i") || input.equals("e")||input.equals("o");
		//equals는 문자 그자체를 비교 ==는 주소를 비교 
		if(input.length()>1) { //문자 길이 
			System.out.println("문자가 아닙니다. 한 글자만 입력하세요");
		}
		else if(!(uppercase || lowercase)) {
			System.out.println("알파벳(a~z, A~Z)이 아닙니다.");
		}
		else if(vowels) {
			System.out.println(input +"은(는)모음입니다.");
		}
		else {
			System.out.println(input +"은(는)자음입니다.");
		}
		s.close();
	}
}

2. 알파벳 순서대로 출력하는 프로그램

import java.util.Arrays;
import java.util.Scanner;
public class Hello{
public static void main(String[] args) {
	final int size = 26;
	char[] codes = new char[size]; // 배열선언 
	int a_char = (int) 'a';
	
	for(int i=0; i<size; i++) {
		codes[i] = (char)(a_char + i); 
		}
	
	for(int i=0; i<size; i++) {
		System.out.printf("%c ", codes[i]);
	}
	System.out.println();
	}
}

 

 

반응형

'JAVA > 2020 프로그램' 카테고리의 다른 글

[JAVA] 가위바위보 게임  (0) 2019.12.08
[JAVA] 별찍기  (0) 2019.12.08
[JAVA] 소수점 두자리까지 같은 지 확인  (0) 2019.12.07
[JAVA] 윤년계산하기  (0) 2019.12.07
양수 판단 코드  (0) 2019.12.07
반응형
package chap03;
import java.util.Scanner; // 입력 

public class plus {

	public static void main(String[] args) {
		Scanner s = new Scanner(System.in);
		System.out.print("첫번째 실수를 입력하세요: ");
		double num1 = s.nextDouble();
		System.out.print("두번째 실수를 입력하세요: ");
		double num2 = s.nextDouble();
		if(Math.abs(num1 - num2) <= 0.01) { //abs는 절댓값으로 바꿔줌
			System.out.println("두수는 소수점 2자리까지 같습니다.");
		}
		else {
			System.out.println("두수는 다릅니다.");
		}
	}
}
반응형

'JAVA > 2020 프로그램' 카테고리의 다른 글

[JAVA] 가위바위보 게임  (0) 2019.12.08
[JAVA] 별찍기  (0) 2019.12.08
[JAVA] 알파벳 프로그램  (0) 2019.12.07
[JAVA] 윤년계산하기  (0) 2019.12.07
양수 판단 코드  (0) 2019.12.07
반응형

우선 윤년의 조건이다.

1. 4로 나누었을 때 나머지가 0인 년도

2. 4로 나누어 떨어졌을때 나머지가 0이라도 100으로 나누었을 때도 나머지가 0이면 평년 

3. 4로 나누어 떨어졌을 때 나머지가 0이고 100으로 나누었을때도 나머지가 0이지만 , 400으로 나누어 떨어지면 윤년

package chap03;
import java.util.Scanner; // 입력 

public class plus {

	public static void main(String[] args) {
		Scanner s = new Scanner(System.in);
		int num;
		while(true) {
		System.out.printf("년도를 입력하세요 : ");
		num = s.nextInt();
		if(num%4==0) {
			System.out.println(num + "년은 윤년입니다.");
		}
		else if((num%4 == 0 & num%100 == 0) & num%400 == 0) {
			System.out.println(num + "년은 윤년입니다.");
		}
		else if(num%4==0 & num%100 == 0) {
			System.out.println(num + "년은 윤년이 아닙니다.");
		}
		else {
			System.out.println(num + "년은 윤년이 아닙니다.");
		}
	
		} 	 
	}
}

 위에는 if-else if문을 이용하여 짠 코드이다. 다소 복잡해보이고 조금 번거롭기 때문에

package chap03;
import java.util.Scanner; // 입력 

public class plus {

	public static void main(String[] args) {
		Scanner s = new Scanner(System.in);
		System.out.print("년도를 입력하세요: ");
		int num = s.nextInt();
		boolean x = (num % 4) == 0;
		boolean y = (num % 100) != 0;
		boolean z = ((num %100 == 0) && (num % 400 == 0)); 
		if(x && (y||z)) {
			System.out.println(num + "년은 윤년 입니다.");
		}
		else {
			System.out.println(num + "년은 윤년이 아닙니다.");
		}
		s.close();
	}
}

 위에 코드 처럼 조건문을 부울변수에 넣고 다시 if-else문을 사용하여 더욱 간결하게 풀어내었다.

반응형

'JAVA > 2020 프로그램' 카테고리의 다른 글

[JAVA] 가위바위보 게임  (0) 2019.12.08
[JAVA] 별찍기  (0) 2019.12.08
[JAVA] 알파벳 프로그램  (0) 2019.12.07
[JAVA] 소수점 두자리까지 같은 지 확인  (0) 2019.12.07
양수 판단 코드  (0) 2019.12.07

+ Recent posts