public class DiceGame {
	public static void main(String[] args) {
		System.out.println("type number between 1 to 6");
		Scanner sc = new Scanner (System.in);
		int userNum = sc.nextInt();
		
		Random rd = new Random();
							//0~5까지 이지만 +1해서 6까지 나옴
		int num = rd.nextInt(6)+1;
		System.out.println(num);
		

		String result =
		userNum > num ? "user win" : 
		(userNum <num ? "ai win" : "Draw") ;
		System.out.println("user: " + userNum + " ai: "+ num);
		System.out.println(result);
		
		sc.close();
	}
}

'java > java exercise' 카테고리의 다른 글

Calculate and display Student Grades  (0) 2020.01.25
Print multiplication table  (0) 2020.01.25
Changing Letter case  (0) 2020.01.25
Game 369  (0) 2020.01.25
Count Number of Notes  (0) 2020.01.25

Print all numbers from 0 to 100

int num = 0;
		while (num < 100) {
			num++ ;
			System.out.println(num);
		}

 

 

Print numbers between 10 to 20

int num = 10;

		do {
			num++;
			System.out.println(num);

		} while (num < 20);​

 

 

Add all numbers between 1 to 10

int num0 = 1, num1 = 0 ;
		
			while(num0<=10) {
				num1 += num0++;
			}
	System.out.println(num1);
	}

 

 

Print only the even numbers between 1 and 10

int n = 0;
		while (n < 10) {
			n++;
			if (n % 2 == 0)
				System.out.println(n);
		}

'java' 카테고리의 다른 글

Java/Break and Labeled break;  (0) 2020.01.27
Java/Do-while loop  (0) 2020.01.25
Java/Def of MVC Pattern/Basic Address Management System  (0) 2020.01.25
자바의 연산자  (0) 2020.01.25
자바의 강제형변환  (0) 2020.01.25

MVC Pattern

Model

:The central component of the pattern. It is the application's dynamic data structure, independent of the user interface. It directly manages the data, logic and rules of the application.

 

View
:Any representation of information such as a chart, diagram or table. Multiple views of the same information are possible, such as a bar chart for management and a tabular view for accountants.

 

Controller
:Accepts input and converts it to commands for the model or view.


 

Model: 데이터 관리, 처리
View: 화면(사용자와의 인터페이스)
Controller: Model - View사이를 연결, 업무 처리

 

 

package practice;

import java.util.*;

/*<주소록 프로젝트>
기능 정의
0) 메뉴 반복 루프
void mainLoop();
1) 메뉴 출력
void printMenu();
2) 메뉴 선택
int getSelectMenu();
3) 주소 정보 입력(이름, 전화번호, 주소)
void inputAddress();
4) 주소 정보 검색(이름으로 검색)
void searchAddss();
5) 주소 정보 변경(이름으로 검색 후 변경)
void updateAddress();
6) 주소 정보 삭제(이름으로 검색 후 삭제)
void deleteAddress();
7) 주소 정보 전체출력
void printAllAddress();
8) 프로그램 종료 
void programExit();
*/

class Address {
	public String name;
	public String number;
	public String address;
}

public class _40 {

	static Scanner sc = new Scanner(System.in); // 스캐너 선언

	static ArrayList<Address> addrList = new ArrayList<Address>(); // ArrayList 객체인 addrList 선언

	public static void main(String[] args) {
		mainLoop();
	}

	// 메뉴 반복 루프
	static void mainLoop() {
		while (true) {
			printMenu();
			int sel = selectMenu(); // 입력한 메뉴의 번호를 selectMenu로부터 전달 받는다
			switch (sel) {
			case 1:
				inputAddress();
				break;
			case 2:
				searchMenu();
				break;
			case 3:
				updateAddress();
				break;
			case 4:
				deleteAddress();
				break;
			case 5:
				allClearAddress();
				break;
			case 6:
				printAllAddress();
				break;
			case 7:
				programExit();
				break;
			default:
				System.out.println("잘못입력하였습니다");
				break;
			}
		}
	}

	// 메뉴 출력
	static void printMenu() {
		System.out.println("==============");
		System.out.println("1. 주소 입력");
		System.out.println("2. 주소 검색");
		System.out.println("3. 주소 수정");
		System.out.println("4. 주소 삭제");
		System.out.println("5. 주소 전체 삭제");
		System.out.println("6. 주소 전체 출력");
		System.out.println("7. 프로그램 종료");
		System.out.println("==============");

	}

	// 메뉴 선택
	static int selectMenu() {
		int sel;
		System.out.println("번호 입력 >> ");
		sel = sc.nextInt(); // 입력한 번호를 sel에 저장
		return sel;
	}

	// 주소 정보 입력
	static void inputAddress() {
		System.out.println("주소를 입력합니다");
		// 이름 번호 주소
		System.out.print("이   름  :  ");
		String name = sc.next();
		System.out.print("전화번호  :  ");
		String number = sc.next();
		System.out.print("주   소  :  ");
		String address = sc.next();

		// Address 클래스의 객체를 생성해
		// name, number, address를 사용한다
		Address addr = new Address();
		addr.name = name;
		addr.number = number;
		addr.address = address; // 입력받은 정보를 Address 클래스의 정보로 넘겨준다

		addrList.add(addr); // 입력받은 정보를 addr리스트에 넣어준다 (저장완료)
	}

	// 메뉴 검색
	static void searchMenu() {
		System.out.println("검색할 이름 입력");
		String name = sc.next();
		for (int i = 0; i < addrList.size(); i++) { // addrList.size()는 addrList에 저장된 값의 개수
			Address addr = addrList.get(i); // addrList.get(i)는 addrList에 저장된 i값을 가져온
			if (name.equals(addr.name)) { // 만약 검색한 이름과 배열에 저장된 이름 중 같은 이름이 있을 경우 아래의 정보를 출력한다

				System.out.println("======================");
				System.out.println("이   름  :  " + addr.name);
				System.out.println("전화번호  :  " + addr.number);
				System.out.println("주   소  :  " + addr.address);
				System.out.println("======================");
				break;
			}
		}
	}

	// 주소 정보 수정
	static void updateAddress() {
		System.out.println("수정할 이름 검색");
		String name = sc.next();
		for (int i = 0; i < addrList.size(); i++) {
			Address addr = addrList.get(i);
			if (name.equals(addr.name)) {

				// 수정할 이름은 new를 붙여줘 구분할 수 있게 만들어줌
				System.out.println("수정할 이름 입력");
				String newName = sc.next();
				System.out.println("수정할 번호 입력");
				String newNumber = sc.next();
				System.out.println("수정할 주소 입력");
				String newAddress = sc.next();

				// new가 붙은 정보는 Address클래스의 정보로 다시 저장한다 (값이 변경(수정)되야하기 때문)
				addr.name = newName;
				addr.number = newNumber;
				addr.address = newAddress;
				break;
			}
		}
	}

	// 주소 정보 삭제
	static void deleteAddress() {
		System.out.println("삭제할 이름 입력");
		String name = sc.next();

		System.out.println("정말 삭제하시겠습니까?");
		System.out.println(" Y / N ");
		String st = sc.next();
		if (st.equalsIgnoreCase("Y")) { // 대소문자 구분 없이 y를 입력 시
			//.isEmpty()
			if(addrList.isEmpty()) { //addrList.size(null)을 만들어야함 
//			if(addrList.size()<1) {
				System.out.println("저장되지 않은 값입니다");
			}

			for (int i = 0; i < addrList.size(); i++) {
				Address addr = addrList.get(i);

				
				if (name.equals(addr.name)) {
					addrList.remove(i); // addrList에서 입력한 이름과 같은 이름을 찾을 경우 삭제를 해준다
					System.out.println("삭제되었습니다");
					break;
				}
			}
		} 
		
		else if (st.equalsIgnoreCase("N")) { // 대소문자 구분 없이 n을 입력 시
			System.out.println("삭제를 취소하였습니다"); // 아무 일이 일어나지 않으며 "삭제를 취소하였습니다" 문구 출력
		} else {
			System.out.println("잘못입력되었습니다"); // else는 y,n을 제외한 다른 입력을 받았을때 "잘못입력되었습니다" 문구 출력
		}

	}

	// 주소 전체 삭제
	static void allClearAddress() {
		System.out.println("정말 전체 삭제 하시겠습니까? \n Y / N");
		String st = sc.next();
		if (st.equalsIgnoreCase("y")) {
			addrList.clear(); // addrList.clear(); 는 addrList의 모든 값을 삭제 해준다
			System.out.println("전체 삭제를 되었습니다");
		} else if (st.equalsIgnoreCase("n")) {
			System.out.println("전체 삭제를 취소하였습니다");
		} else {
			System.out.println("잘못입력되었습니다");
		}

	}

	// 주소 전체 출력
	static void printAllAddress() {
		System.out.println("전체 출력합니다");
		for (int i = 0; i < addrList.size(); i++) {
			Address addr = addrList.get(i); // addrList에 저장된 모든 값을 가져와 아래 양식으로 출력해준다
			System.out.println("======================");
			System.out.println("이   름  :  " + addr.name);
			System.out.println("전화번호  :  " + addr.number);
			System.out.println("주   소  :  " + addr.address);
			System.out.println("======================");
		}
	}

	// 프로그램 종료
	static void programExit() {
		System.out.println("프로그램을 종료합니다");
		System.exit(0); // 0은 정상종료 / 0이 아니면 비정상종료
	}

'java' 카테고리의 다른 글

Java/Do-while loop  (0) 2020.01.25
Java/While Loop  (0) 2020.01.25
자바의 연산자  (0) 2020.01.25
자바의 강제형변환  (0) 2020.01.25
자바의 자동형변환  (0) 2020.01.25

ex1

Scanner sc = new Scanner(System.in);
		System.out.println("Type One Alphabet");
		char a = sc.next().charAt(0);
		
		
		char result=
 		(a>=65 && a<=90) ? ((char)(a + 32)) : ((char)(a - 32));
			System.out.println(result);
		
		
	sc.close();

ex2

Scanner sc = new Scanner(System.in);
		System.out.println("Type One Alphabet");
		char a = sc.next().charAt(0);
		
		String result = 
		(a>=65 && a<=90) ?  "Upper Case" : "Lower Case";
		System.out.println(result);
		
	sc.close();

'java > java exercise' 카테고리의 다른 글

Calculate and display Student Grades  (0) 2020.01.25
Print multiplication table  (0) 2020.01.25
Dice Game  (0) 2020.01.25
Game 369  (0) 2020.01.25
Count Number of Notes  (0) 2020.01.25

 

Scanner sc = new Scanner(System.in);
		System.out.println("1부터 99중에서 하나의 수를 입력해주세요");
		int num = sc.nextInt();

		
			int tenth = num / 10;
			int first = num - (tenth * 10);
			
			/*num    6    13   69
			  tenth  0    1    6
			  		  ㄴ0.6 / 1.3 / 6.9 이지만 실수만 표시
			  first  6    3    9
			*/

			
			
			if (num < 10) {
				if (first % 3 == 0)//나누기 3했을떄 남는 수가 0과 같다
					System.out.println("박수짝");
			}

			else if (num > 10) {
				if (tenth % 3 == 0) {
					if (first % 3 != 0)
						System.out.println("박수짝");
					if (first % 3 == 0)
						System.out.println("박수짝짝");
				}

				else if (first % 3 == 0)
					System.out.println("박수짝");
			}

			sc.close();

'java > java exercise' 카테고리의 다른 글

Calculate and display Student Grades  (0) 2020.01.25
Print multiplication table  (0) 2020.01.25
Dice Game  (0) 2020.01.25
Changing Letter case  (0) 2020.01.25
Count Number of Notes  (0) 2020.01.25

 

	System.out.println("금액을 입력해주세요.");
		Scanner sc =  new Scanner (System.in);
		int money=sc.nextInt();
		
		int a = money/50000;//몫이 a 오만원권 장수가 됨. 
		money = money%50000;//<- 오만원권을 뺸 나머지 머니
		System.out.println("오만원권 " + a + "매");
		
		int b = money/10000;//<-위에서 내려온 나머지머니를 나눠서 몫이 b 만원권 장수가 됨.
		money = money%10000;
		System.out.println("만원권 " + b + "매");
		
		int c = money/5000;
		money = money%5000;
		System.out.println("오천원권 " + c +"매");
		
		int d = money/1000;
		money = money%1000;
		System.out.println("천원권 " + d +"매");
		
		int e = money/500;
		money = money%500;
		System.out.println("오백원 " + e +"개");
		
		int f = money/100;
		money = money%100;
		System.out.println("백원 " + f +"개");
		
		int g = money/50;
		money = money%50;
		System.out.println("오십원 " + g + "개");
		
		int h = money/10;
		money = money%10;
		System.out.println("십원 " + h + "개");
		
		
		sc.close();

'java > java exercise' 카테고리의 다른 글

Calculate and display Student Grades  (0) 2020.01.25
Print multiplication table  (0) 2020.01.25
Dice Game  (0) 2020.01.25
Changing Letter case  (0) 2020.01.25
Game 369  (0) 2020.01.25

연산자: 연관지어서 계산하는 약속

1)산술연산자 (+ - * / %)
증강연산자 num++, ++num, num--, --num
부호연산자 +num, -num
복합대입연산자 num += 10;

2)비교연산자 == != > < >= <=
논리연산자 (&& ||)

3)비트연산자
비트논리연산자
비트이동연산자

4)조건연산자(3항연산자)
  A?B:C ->풀이: A의 조건에 부합하면 B 아니면 C
  if (A)
       b;
    else 
       C;

int x = 33, y = 20;
		System.out.println(x+y);
		System.out.println(x-y);
		System.out.println(x*y);
		System.out.println(x/y);  //몫
		System.out.println(x%y);  //나머지

 

'java' 카테고리의 다른 글

Java/Do-while loop  (0) 2020.01.25
Java/While Loop  (0) 2020.01.25
Java/Def of MVC Pattern/Basic Address Management System  (0) 2020.01.25
자바의 강제형변환  (0) 2020.01.25
자바의 자동형변환  (0) 2020.01.25

강제형변환
1) 자동으로 형변환이 이루어지지 않을 때 의도하에 강제로 변환 시키는 것
2) 사이즈가 큰 것과 범위가 큰 것을 작은 것으로 변환하려고 할 때

		// 1byte를 제외한 3byte가 사라짐
		//byte 범위를 넘는 숫자는 값이 왜곡됨
		int num = 130;
		byte b = (byte)num;
		System.out.println(b);

		/*
		char (2byte) 0x0000~0xFFFF
		short (2byte) -7FFF~-7FFE
		short는 음수가 있으므로 왜곡될 수있음
		*/
		char ch = 'A';
		short s = (short)ch;
		System.out.println(s);
		
		//같은 4byte라 할지라도 float의 표현범위가 넓기때문에 소수점이 없어진다
		float f = 13.3F;
		int i = (int)f;
		System.out.println(i);
		
		//long은 8byte고 float는 4byte이지만 플로트가 표현범위가 무한대이므로 lval은 float로 자동변환 된다.
		long lval = 1234L;
		float fNum = lval;
		System.out.println(fNum);

'java' 카테고리의 다른 글

Java/Do-while loop  (0) 2020.01.25
Java/While Loop  (0) 2020.01.25
Java/Def of MVC Pattern/Basic Address Management System  (0) 2020.01.25
자바의 연산자  (0) 2020.01.25
자바의 자동형변환  (0) 2020.01.25