배열

배열

 

향상된 for 문 사용법

배열 사용법 ( 배열은 int 뿐만 아니라 다른 자료형들을 담아서 사용할 수 있다 )

배열의 index 는 0 부터 시작한다

배열을 사용하여 문자열을 입력받아 출력
향상된 for 문을 사용하여 출력, 배열 변수를 선언할때는 자료형이 필요하지만 초기화할때는 자료형을 선언하지 않아도 된다

 

 

 

 

 

 

 

 

 

 

다차원 배열

다차원 배열
다차원 배열 변수 선언 및 초기화
중첩 반복문으로 배열을 출력 ( 다중 배열에서 arr.length 는 열의 길이를 의미, arr[x].length 는 행의 길이를 의미 )

 

 

 

 

 

 

 

 

 

 

실습 예제1

실습 예제1
예제 풀이

 

 

 

 

 

 

 

 

 

 

실습 예제2

실습 예제2

package array;

import java.util.Scanner;

public class Test02 {
	public static void main(String[] args) {
		
		Scanner input = new Scanner(System.in);
		int arr[] = new int[] {10, 54, 13, 17, 25, 30};
		String odd_even = null;
		System.out.print("짝수, 홀수 입력 : ");
		odd_even = input.next();
		
		for(int i : arr) {
			if(odd_even.equals("짝수")) {
				if(i%2 == 0) {
					System.out.println("짝수 : " + i);
				}
			}else if(odd_even.equals("홀수")) {
				if(i%2 == 1)
					System.out.println("홀수 : " + i);
			}
		}
		
	}
}

코드 실행
코드 실행

 

 

 

 

 

 

 

 

 

 

실습 예제3

실습 예제3 ( 짝수, 홀수 입력 시 인덱스 값이 짝수 및 홀수 인 값 출력 ) 및 예제 풀이3
홀수 입력시 코드 실행

 

728x90

 

 

 

 

 

 

while 문

while 문
while 문 사용법
break, continue ( break 는 이후의 문장을 실행하지 않고 바로 반복문을 탈출한다, continue 는 이후의 문장을 실행하지 않고 반복문의 시작 위치로 다시 이동하여 이후 문장을 실행한다 )
break 사용법
continue 사용법
while 문을 사용해서 입력받고 1부터 입력 값 까지의 숫자들을 더한 값을 구해주는 프로그램 예시 ( 참고용 )

 

 

 

 

 

 

 

 

 

 

do - while 문

do - while 문 ( 한번은 무조건 종속 문장을 실행한 뒤 조건식을 확인 )

 

 

 

 

 

 

 

 

 

 

실습 예제1

실습 예제1

 

 

예제 풀이1

package while_;

import java.util.Scanner;

public class Test01 {
	public static void main(String[] args) {
		
		String id = null, pw = null, inputId = null, inputPw = null;
		int choice = 0;
		
		Scanner input = new Scanner(System.in);
		
		while(choice != 3) {
			System.out.print("1. 로그인\n2. 회원가입\n3. 나가기\n>>> ");
			choice = input.nextInt();
			
			// 번호 선택이 올바르지 않은 경우
			if(choice<1 || choice>3) {
				System.out.println("입력 오류!!! 다시 입력하세요.");
				continue;
			} else if(choice == 2) { // 회원가입을 선택한 경우
				System.out.println("---회원가입---");
				System.out.print("아이디 입력 : ");
				id = input.next();
				System.out.print("비밀번호 입력 : ");
				pw = input.next();
				System.out.println("회원가입 완료!");
			} else if(choice == 1) { // 로그인을 선택한 경우
				
				System.out.print("아이디 입력 >>> ");
				inputId = input.next();
				if(inputId.equals(id)) { // 입력한 아이디가 DB에 존재하는 경우
					System.out.print("비밀번호 입력 >>> ");
					inputPw = input.next();
					if(inputPw.equals(pw)) { // PW까지 일치한 경우
						System.out.println(id + "님 로그인 성공!!!");
					}else { // PW가 불일치한 경우
						System.out.println("비밀번호 불일치!!!");
						continue;
					}
					
				} else { // 입력한 ID가 존재하지 않는 경우
					System.out.println("입력하신 아이디가 존재하지 않습니다.");
					continue;
				}
				
			}
		}
		
	}
}

코드 실행

 

 

 

 

 

 

 

 

 

실습 예제2

실습 예제2

 

 

실습 풀이2

package while_;

import java.util.Scanner;

public class Test02 {
	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
		
		int coin=0, choice=0;
		
		// 금액 투입
		System.out.print("요금을 투입하세요 >>> ");
		coin = sc.nextInt();
		
		while(choice != 4) {
			// 메뉴판 출력 & 번호 선택
			System.out.println("1. 커피(200)\t2. 코코아(250)\t3. 반환\t4. 종료");
			System.out.print("메뉴를 선택하세요 >>> ");
			choice = sc.nextInt();
			
			switch(choice) {
			// 1번 선택
			case 1:
				if(coin > 200) {
					coin -= 200;
					System.out.println("맛있게 드세요\n남은 금액 : " + coin);
				} else {
					System.out.println("요금이 부족합니다.");
				}
				break;
				
			// 2번 선택
			case 2:
				if(coin > 250) {
					coin -= 250;
					System.out.println("맛있게 드세요\n남은 금액 : " + coin);
				}else {
					System.out.println("요금이 부족합니다.");
				}
				break;
			
			// 3번 선택
			case 3:
				System.out.println("반환된 거스름돈 : " + coin);
				coin = 0;
				break;
				
			// 4번 선택
			case 4:
				break;
				
			// 다른 번호 선택
			default:
				System.out.println("잘못된 입력 값입니다.");
			}
			
		}
		System.out.println("종료되었습니다.");
		
	}
}

코드 실행

 

 

 

 

 

 

 

 

 

실습 예제3

실습 예제3

 

 

예제 풀이3-1

package while_;

public class Test03 {
	public static void main(String[] args) {
		
		int rice = 1000 * 100;
		int mouseNum = 2;
		int day = 1;
		
		while(rice > 0) {
			
			// 쌀 먹기
			rice -= 20*mouseNum;
			
			// 쌀을 먹은 후 2배 증가
			// 더이상 먹을 쌀이 없으면 쥐의 숫자 증가X
			if((day%10==0) && rice>20*mouseNum) {
				mouseNum *= 2;
			}
			
			// 쌀을 다 먹은 후 일 수 증가
			day++;
		}
		
		System.out.println("걸린 일 수 : " + (day-1));
		System.out.println("총 쥐의 수 : " + mouseNum);
		
	}
}

코드 실행

 

 

예제 풀이3-2

package while_;

import java.util.Scanner;

public class Test03_2 {
	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
		
		int num1=0, 
			num2=0, 
			least=0, 
			maximum=0;
		
		System.out.print("두 수 입력 : ");
		num1 = sc.nextInt();
		num2 = sc.nextInt();
		
		for (int i=1; i<=num1 && i<=num2 ; i++) {
			if((num1%i==0) && (num2%i==0)) {
				maximum = i;
			}
		}
		
		least = (num1 * num2) / maximum;
		
		System.out.println(num1 + "과 " + num2 + "의 최소공배수 : " + least);
		System.out.println(num1 + "과 " + num2 + "의 최대공약수 : " + maximum);
		
	}
}

코드 실행

 

 

예제 풀이3-3

예제 풀이 3-3

 

 

예제 풀이3-4

예제 풀이 4-5

 

 

 

 

 

 

 

 

실습 예제4

실습 예제4

 

 

예제 풀이4-1

예제 풀이 4-1

 

 

예제 풀이4-2

예제 풀이 4-2

 

728x90

 

 

 

 

 

 

for 문

for 문
for 문 예시, sum 값이 int 의 범위를 벗어나기 때문에 더 큰 정수형인 long 을 사용
for 문 예시
조건식은 공백이어도 상관 없음 ( 위 반복문에서 i 의 값이 9일때 출력 후 i 가 2씩 증가하니 11로 i 가 변경되고 i 값이 10 보다 크기때문에 for 문 탈출 )
홀수와 짝수 구분하는 간단한 프로그램

 

 

 

 

 

 

 

 

 

 

while 문

while 문 사용법

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

실습 예제

램덤한 0 ~ 9 까지의 수를 생성하여 5번의 기회 내에 랜덤 생성된 숫자를 맞추는 프로그램을 만드시오
1) 현재 남은 목숨 출력
2) 정답 시 맞춘 숫자, 추측 횟수 출력
3) 목숨이 다 닳는다면 정답을 출력

- 랜덤 숫자 생성 코드 -
double ranDouble = Math.random();
int ranInt = (int)(ranDouble*10)


오답 시 출력
추측 실패 시 출력
추측 성공 시 출력

 

 

예제 풀이

package for_;

import java.util.Scanner;

public class Test01 {
	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
		
		/* 1~9 랜덤 숫자 변수 */
		double ranDouble = Math.random();
		int ranInt = (int)(ranDouble*10);
		
		/* 변수 선언 및 초기화 */
		int chance = 5;
		int guess = 0;
		int life = 5;
		boolean check;
		
		/* 숫자 추측 */
		for(int i=1; i<=10; i++) {
			System.out.println("현재 목숨 : " + life);
			System.out.print("숫자를 맞추세요(1~9) : ");
			guess = sc.nextInt();
			
			/* 추측 성공 여부 */
			if(guess == ranInt) {
				check = true;
			}else {
				check = false;
			}
			
			/* 성공, 실패 시 출력 메세지 */
			if( check ) {
				System.out.println();
				System.out.println("★★★★★숫자를 맞추셨습니다★★★★★");
				System.out.println("맞춘 숫자 : " + ranInt);
				System.out.println("추측 횟수 : " + i);
				break;
			}else {
				System.out.println();
				System.out.println("추측 실패, 목숨 -1");
				System.out.println();
				life -= 1;
			}
			
			/* 목숨 확인 및 게임진행 여부 */
			if(life>0) {
				continue;
			}else {
				System.out.println("목숨이 모두 닳았습니다.");
				System.out.println("정답은 " + ranInt + "입니다.");
				break;
			}
		}
		
	}
}
728x90

 

 

 

 

 

 

switch - case 문

switch - case 문 ( 쇼핑몰 등에서 회원 등급에 따라 쿠폰을 나눠주는 경우에 사용됨 ), if 문으로 대체가 가능하지만 switch - case 문을 사용하는 이유는 if 문보다 처리 속도가 빠르기 때문이다
switch - case 문 사용 예시 ( switch 의 조건문을 실행 후 결과 값을 case 에서 찾아서 출력, default 는 결과 값이 없는 경우 출력 )
break 를 주석처리하면 해당 케이스를 만난 이후로 모든 케이스의 내용을 출력함
case 2 의 값이 조건문의 결과 값과 같기 때문에 해당 코드 아래도 모두 출력되는 모습
입력 값을 switch - case 문을 사용하여 홀수인지 짝수인지 판별하는 프로그램
문자열도 switch - case 문으로 비교하여 사용할 수 있다

 

간단한 예제

간단한 예제
동작 예제

 

예제 풀이

switch - case 문 사용하여 풀이 ( while 문으로 반복 처리 )
콘솔창

 

728x90

 

 

 

 

 

 

if문

if문
if문 사용 예시 ( 각 if 제어문을 한번씩 다 돌고 출력 )
코드 진행 확인 ( 조건식이 true 이기 때문에 종속 문장이 실행된다 )
코드 진행 확인 ( 조건식이 false 이므로 종속문장을 실행하지 않고 다음 문장을 실행한다 )
첫번째 종속 문장 실행 ( num % 2 == 0 조건식이 true 이기 때문 )
두번째 종속문장 실행 ( num % 2 != 0 조건식이 true 이기 때문 )

 

 

 

 

 

if문 실습예제 1

1. 두 수를 입력 받아 큰 수를 출력 하시오

2. 세 수를 입력 받아 큰 수를 출력하시오

 

예제 풀이 1-1

두 수 비교 예제 풀이

 

예제 풀이 1-2

세 수 비교 예제 풀이 ( 최댓값을 변수로 선언하여 풀이도 가능, 최댓값을 변수로 선언하는 경우 몇번째 입력인지도 문자열 변수로 선언하여 몇번째 입력 값인지도 출력 가능 )

 

 

 

 

 

 

 

 

 

if - else 문

if - else문
if - else문 ( if 에서 조건식이 true 이기 때문에 else 문을 실행하지 않고 다음 코드 실행 )
if - else문 (&nbsp; if문 조건식이 false 이기 때문에 else문의 조건식을 확인, else문의 조건식이 true 이므로 해당 코드 실행 후 다음 코드를 실행 )

 

 

 

 

 

 

 

 

 

 

중첩된 if 문

if문 안에 종속된 if 문이 또 존재

 

 

중첩된 if문 예제 및 풀이

중첩된 if문 예제 ( 초기화에서 문제가 생길 수 있으므로 최종 출력에서 값이 초기화 됐는지 확인 후 출력 )
콘솔 입력 및 출력
만약 입력 값이 0이라면? 초기화 문제로 인식하기 때문에 해당 문제 해결 필요함
최종 값을 출력하기 전에 signal 이라는 변수를 추가하여 입력 값으로 0 이 들어온 경우 signal 변수를 1로 초기화하여 0 이라는 값이 정상적으로 입력받은 값이라는 것을 signal 변수의 0 과 1 로 구분하여 사용한다 ( signal 이 0 인 경우 : 입력 값이 0 이들어온 경우가 아닌 최초의 초기화 값인 0 이 적용되 있는 경우, signal 이 1 인 경우 : 입력 값이 0 으로 들어와 최초의 초기화 값인 0 에서 입력 값 0 으로 초기화가 진행된 경우 )

 

 

 

 

 

 

 

 

 

 

if - else if 문

if - else if문
else if문 사용 예시

 

 

실습 예제

 

예제 풀이

풀이 완료

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

예제 직접 생성하고 풀어보기

생성한 예제

 

package if_;

import java.util.Scanner;

public class Test5 {
	public static void main(String[] args) {
		
		System.out.println("-------메뉴판-------");
		System.out.println("1. 햄버거(9,000원)");
		System.out.println("2. 피자(11,000원)");
		System.out.println("3. 치킨(32,000원)");
		System.out.println("4. 금액 반환");
		System.out.println("--------------------");
		
		int coin = 0;
		int menuNum = 0;
		int menuCost = 0;
		String menuName = null;
		int whereNum = 0;
		String where = null;
		
		Scanner sc = new Scanner(System.in);
		System.out.print("금액을 투입하세요 : ");
		coin = sc.nextInt();
		
		if (coin >= 9000) {
			
			System.out.print("메뉴를 선택하세요 : ");
			menuNum = sc.nextInt();
			
			if (menuNum == 1) {
				menuCost = 9000;
				menuName = "햄버거";
			}else if (menuNum == 2) {
				menuCost = 11000;
				menuName = "피자";
			}else if (menuNum == 3) {
				menuCost = 32000;
				menuName = "치킨";
			}
			
			if (menuNum < 1 && menuNum > 4) {
				System.out.printf("올바른 주문이 아닙니다. %d원 반환\n", coin);
			}else if (menuCost > coin){
				System.out.printf("투입 금액이 부족합니다. %d원 반환\n", coin);
			}else if (menuNum >= 1 && menuNum <= 3){
				System.out.print("식사 방식을 선택하세요. (1. 포장, 2.매장식사)");
				whereNum = sc.nextInt();
				
				if (whereNum != 1 && whereNum != 2) {
					System.out.printf("선택 오류 %d원 반환\n", coin);
				}else {
					if(whereNum == 1) {
						where = "포장";
					}else {
						where = "매장식사";
					}
					
					System.out.println("------------------");
					System.out.printf("주문 메뉴 : %s\n", menuName);
					System.out.println(where);
					System.out.printf("거스름돈 : %d원\n", (coin - menuCost));
					System.out.println("------------------");
					
				}
				
			}else if (menuNum == 4)	System.out.printf("투입 금액 %d원 반환", coin);
			
		}else {
			System.out.printf("주문할 수 있는 메뉴 없음 %d원 반환\n", coin);
		}
		
	}
}

예제 풀이 ( 복잡 )

 

package if_;

import java.util.Scanner;

public class Test6 {
	public static void main(String[] args) {
		

        System.out.println("-------메뉴판-------");
        System.out.println("1. 햄버거(9,000원)");
        System.out.println("2. 피자(11,000원)");
        System.out.println("3. 치킨(32,000원)");
        System.out.println("4. 금액 반환");
        System.out.println("--------------------");

        int coin = 0;
        int menunum = 0;
        int menucost = 0;
        String menuname = null;
        int wherenum = 0;
        String where = null;
        Boolean isValid; //최소 금액이 넘었는지 확인


        /**
         * 금액 투입
         */
        Scanner sc = new Scanner(System.in);
        System.out.print("금액을 투입하세요 : ");
        coin = sc.nextInt();

        //coin이 최소 금액은 넘어야지 기본적으로 주문이 가능함.
        if (coin >= 9000) {
            isValid = true;
        }
        else{
            isValid = false;
        }

        /**
         * 메뉴 선택
         */
        if(isValid){

            System.out.print("메뉴를 선택하세요 : ");
            menunum = sc.nextInt();

            if (menunum == 1) {
                menucost = 9000;
                menuname = "햄버거";

            }else if (menunum == 2) {
                menucost = 11000;
                menuname = "피자";

            }else if (menunum == 3) {
                menucost = 32000;
                menuname = "치킨";
            }
            else{
                System.out.printf("올바른 주문이 아닙니다. %d원 반환", coin);
            }
        }
        else{
            System.out.printf("주문할 수 있는 메뉴 없음 %d원 반환\n", coin);
        }

        /**
         * 구매 가능 여부 확인
         */
        if ((menunum == 1) || (menunum == 2) || (menunum == 3)) {

            if ((coin - menucost) >= 0) {

                System.out.print("식사 방식을 선택하세요. (1. 포장, 2.매장식사)");
                wherenum = sc.nextInt();
                if (wherenum == 1) {
                    where = "포장";
                }else{
                    where = "매장식사";
                }

                System.out.println("------------------");
                System.out.printf("주문 메뉴 : %s\n", menuname);
                System.out.println(where);
                System.out.printf("거스름돈 : %d원\n", (coin - menucost));
                System.out.println("------------------");
            }
            else{

                System.out.printf("투입 금액이 부족합니다. %d원 반환\n", coin);
            }
        }
    }
}

예제 풀이 ( 깔끔 )

728x90

 

 

 

 

 

실습 예제 1

실습 예제 1

 

 

실습 풀이 1

if 문을 사용하지 않고 삼항 연산자를 사용하여 문제 풀이

 

 

 

 

 

 

 

 

 

 

실습 예제 2

실습 예제 2

 

 

실습 풀이 2

실습 풀이 2

 

 

 

 

 

 

 

 

 

 

실습 예제 3

실습 예제 3

 

 

실습 풀이 3

 

실습 풀이 3

 

 

 

 

 

 

 

 

 

 

실습 예제 4

실습 예제 4

 

 

실습 풀이 4

실습 풀이 4

 

728x90

 

 

 

 

산술 연산자

산술 연산자

 

정수형끼리 연산시 결과는 정수로 출력, 정수형과 실수형 연산시 결과는 실수형으로 출력

 

 

 

 

 

 

 

 

 

 

복합 대입 연산자

복합 대입 연산자

 

복합 대입 연산자 예시

 

 

 

 

 

 

 

 

 

관계 연산자

관계 연산자

 

결과 값이 참인지 거짓인지에 따라 true 와 false 출력

 

 

 

 

 

 

 

 

논리 연산자

논리 연산자

 

 

논리 연산자 예시

 

 

 

 

 

 

 

 

증감 연산자

증감 연산자

 

 

★ 증감 연산자의 위치가 중요 ★ - 대입하고 연산(후치), 연산하고 대입(전치)

 

 

 

 

 

 

 

 

 

 

 

실습 예제

예상하기

 

 

실습 풀이

		int a=5, b=6, c=10, d;
		d = ++a * b--;
   //	d = ++5 * 6--;
   //	d = 6 * 6
   //	a = 6, b = 5, d = 36
		System.out.println(a + "," + b + "," + c);
		
		d = a++ + ++c - b--;
    //	d = 6++ + ++10 - 5--
    //	d = 6 + 11 - 5
    //	a = 7, b = 4, c = 11, d = 12 
		System.out.println(a + "," + b + "," + c + "," + d);

 

 

 

 

 

 

 

삼항 연산자 ( 조건 연산자 )

삼항 연산자 ( 조건 연산자 )

728x90

 

 

 

 

Scanner 클래스

  • 사용자의 입력 값을 입력받아 사용하기 위해 사용하는 클래스

 

 

Scanner 사용하는 방법 ( input 이라는 변수를 생성하여 Scanner 를 통해 입력받은 값을 Scanner 자료형인 input 변수에 저장하여 해당 내용을 사용한다 )

 

외부의 java 클래스를 끌어다 사용하는 경우 import 를 해야 사용이 가능한데 Ctrl + Shift + O 단축키를 사용하여 자동으로 불러올 수 있다.

 

 

 

 

 

 

 

 

 

 

실습 예제

입력 값에 따라 내용이 변경되는 코드 작성

 

 

실습 풀이

코드 작성 완료 ( sum 변수는 입력 값을 모두 입력 받은 뒤에 선언 및 초기화를 진행해야 입력 값에 대한 연산이 들어간다 )

 

728x90

+ Recent posts