(101)

(5) switch / case 를 이용한 문제

문제 1 사용자로부터 영문자 입력을 받고 그 중 모음자들만 출력하기 Scanner sc = new Scanner(System.in); char alpa = sc.next().charAt(0); switch(alpa) { case 'a': case 'e': case 'i': case 'o': case 'u': System.out.println("입력하신 알파벳은 모음자 소문자 입니다"); break; case 'A': case 'E': case 'I': case 'O': case 'U': System.out.println("입력하신 알파벳은 모음자 대문자 입니다"); break; default: System.out.println("모음자가 아닙니다"); break; } 문제 2 1월부터 12월중 하나를 입..

(4) if문을 활용한 숫자 입력 시 출력 설정 (2) (연령 구분)

뷔페 출입 시 손님이 나이를 입력했을 때 다음과 같은 결과가 출력 되도록 할 것 0~7세 = 해당 손님은 미취학 아동이며 입장요금은 2500원 입니다. 8~13세 = 해당 손님은 초등학생이며 입장요금은 5500원 입니다. 14~19세 = 해당 손님은 청소년이며 입장요금은 10000원 입니다. 20세 이상 = 해당 손님은 성인이며 입장요금은 17500원 입니다. Scanner sc = new Scanner(System.in); System.out.println("몇살이세요?"); int age = sc.nextInt(); int charge; if(age

JAVA (6) 제어문(if문과 switch/case문 상세)

제어문 프로그램의 순차적인 흐름을 제어하기 위한 문법(명령문) 조건문과 반복문이 있다 조건문 참, 거짓에 따라 분기를 발생시키는 명령문 조건식과 실행블록으로 구성된다 if = 표현 범위가 넓다, 대부분의 경우에 사용 switch = 값이 확실하게 정해 져 있을 때 사용한다. 속도와 가독성 면에서 유리하다 try~catch = 예외처리에 사용 if 문 if, else if, else if문의 규칙 if는 단독으로 사용가능하다 else if문은 생략가능하다 ( if다음 바로 else 사용 가능 ) else if문을 여러개 사용가능하다 //if(조건식) { //조건식의 결과가 true일 때 수행 //} //else if(조건식) { //해당 else if의 조건식 결과가 true이고 if의 조건은 false일..

JAVA (5) 연산자(Operator)

연산자 프로그램에서 데이터를 처리하여 결과를 산출하는 것을 연산이라 한다 연산에 사용되는 표시나 기호를 "연산자" 라고 한다 연산되는 데이터를 "피연산자" 라고 한다 변수나 상수 등의 피연산자를 대상으로 연산을 수행하고 결과를 얻는 데 사용한다 계산, 조건, 반복 등을 위해 사용하는 문법이다 1. 산술연산자 수치연산을 위한 연산(사칙연산, %) int a, b; a=20; b=3; System.out.println(a+b) System.out.println(a-b) System.out.println(a*b) // a나누기b의 몫 System.out.println(a/b) // 나눈 나머지값 System.out.println(a%b) 2. 관계연산자(비교연산자) 연산자들간의 상대적인 크기를 판단하는 연산자..

JAVA (4) 형 변환(Casting)

형 변환(Casting) - 기존의 자료형에서 다른 자료형으로 변환하는 것 저장 가능 범위 1byte : char, byte ( -128 ~ 127 ) 2byte : boolean, short ( -32,768 ~ 32,767 ) 4byte : int, float ( -2,147,483,648 ~ 2,147,483,647 ) 8byte : long, double ( -9,223,372,-036,854,775,808 ~ -9,223,372,-036,854,775,807 ) byte test1 = 5; short test2; // short는 byte보다 크기때문에 short 타입의 변수의 값을 byte 타입 변수에 할당할 수 없다 test1 = test2; byte test1 = 5; short test2..

(5) switch / case 를 이용한 문제

Tech/Java & Spring 2022. 11. 19. 20:16
728x90
728x90
문제 1
  • 사용자로부터 영문자 입력을 받고 그 중 모음자들만 출력하기
	Scanner sc = new Scanner(System.in);
	char alpa = sc.next().charAt(0);
	switch(alpa) {
	case 'a':
	case 'e':
	case 'i':
	case 'o':
	case 'u':
		System.out.println("입력하신 알파벳은 모음자 소문자 입니다");
		break;
	case 'A':
	case 'E':
	case 'I':
	case 'O':
	case 'U':
		System.out.println("입력하신 알파벳은 모음자 대문자 입니다");
		break;
	default:
		System.out.println("모음자가 아닙니다");
		break;
	}

 

문제 2
  • 1월부터 12월중 하나를 입력했을 때,  몇 일까지 있는지를 출력하기
  • 2월은 28일로 고정
  • 다른 값을 입력하면 "그런 달은 존재하지 않습니다"를 출력
  • ex) 3 입력 시 3월은 31일까지 있습니다.
		Scanner s = new Scanner(System.in);
		int month = s.nextInt();
		int day=0; 
		boolean noPrint=true;
		switch(month) {
		case 1: case 3: case 5: case 7: case 8: case 10: case 12:
			day=31;
			break;
		case 4: case 6: case 9: case 11:
			day=30;
			break;
		case 2:
			day=28;
			break;
		default:
			day=1;
			noPrint=false;
			System.out.println("그런 달은 존재하지 않습니다");
		}
		if(noPrint==true) {
			System.out.println(month+"월은" +day+"일 까지 있습니다");
		}
728x90
300x250
mag1c

mag1c

2년차 주니어 개발자.

(4) if문을 활용한 숫자 입력 시 출력 설정 (2) (연령 구분)

Tech/Java & Spring 2022. 11. 19. 19:46
728x90
728x90

뷔페 출입 시 손님이 나이를 입력했을 때 다음과 같은 결과가 출력 되도록 할 것

  • 0~7세 = 해당 손님은 미취학 아동이며 입장요금은 2500원 입니다.
  • 8~13세 = 해당 손님은 초등학생이며 입장요금은 5500원 입니다.
  • 14~19세 = 해당 손님은 청소년이며 입장요금은 10000원 입니다.
  • 20세 이상 = 해당 손님은 성인이며 입장요금은 17500원 입니다.

Scanner sc = new Scanner(System.in);
System.out.println("몇살이세요?");
int age = sc.nextInt();
int charge;

if(age<8){
	charge = 2500;
	System.out.println("해당 손님은 미취학 아동이며 입장요금은 "+charge+"원 입니다.");
}
else if(age<14){
	charge = 5000;
	System.out.println("해당 손님은 초등학생이며 입장요금은 "+charge+"원 입니다.");
}
else if(age<20){
	charge = 10000;
	System.out.println("해당 손님은 청소년이며 입장요금은 "+charge+"원 입니다.");
}
else if(age < 101){
	charge = 17500;
	System.out.println("해당 손님은 성인이며 입장요금은 "+charge+"0원 입니다.");
}

 

728x90
300x250
mag1c

mag1c

2년차 주니어 개발자.

(3) if문을 활용하여 숫자 입력 시 출력 설정(1)

Tech/Java & Spring 2022. 11. 19. 19:38
728x90
728x90
  • 사용자로부터 1~100사이의 숫자를 입력받아 보세요
  • 숫자를 입력받으면 다음과 같이 출력하세요
숫자를 입력하세요
75
입력한 숫자 : 75

 

 

Scanner sc = new Scanner(System.in);
System.out.println("숫자를 입력하세요");
int num = sc.nextInt();
if(num<0 || num>100) {
System.out.println("범위를 초과한 숫자를 입력하셨습니다. (허용범위 : 0~100)");
}
else if(num<=100) {
	System.out.println("입력한 숫자 : " + num);
}
else{
	System.out.println("잘못된 값을 입력하셨습니다.");
}
728x90
300x250
mag1c

mag1c

2년차 주니어 개발자.

JAVA (6) 제어문(if문과 switch/case문 상세)

Tech/Java & Spring 2022. 11. 19. 19:36
728x90
728x90

제어문

  • 프로그램의 순차적인 흐름을 제어하기 위한 문법(명령문)
  • 조건문과 반복문이 있다

 

 

조건문

  • 참, 거짓에 따라 분기를 발생시키는 명령문
  • 조건식과 실행블록으로 구성된다
  • if = 표현 범위가 넓다, 대부분의 경우에 사용
  • switch = 값이 확실하게 정해 져 있을 때 사용한다. 속도와 가독성 면에서 유리하다
  • try~catch = 예외처리에 사용

 


 

if 문

  • if, else if, else
  • if문의 규칙
  1. if는 단독으로 사용가능하다
  2. else if문은 생략가능하다 ( if다음 바로 else 사용 가능 )
  3. else if문을 여러개 사용가능하다
//	if(조건식) {
//		조건식의 결과가 true일 때 수행
//	}
//	else if(조건식) {
//		해당 else if의 조건식 결과가 true이고 if의 조건은 false일 때 수행
//	}
//	else(조건식) {
//		if와 else if 모두가 false일 때 수행
//	}

 

switch / case 문

  • 주어진 조건값의 결과에 따라 프로그램이 다른 명령을 수행하도록 하는 조건문
  • 가독성이 좋으며, 컴파일러가 최적화를 훨씬 쉽게 할 수 있어서 처리속도가 빠르다
  • 조건식의 계산 결과가 int 범위 이하의 정수와 String만 사용 가능하다
  • 조건식의 결과와 일치하는 case문으로 이동 후 break를 만날 때 까지 실행된다
  • break가 없으면 switch문을 벗어나지 않고 계속 default문까지 실행된다
  • case문의 값으로 변수를 사용할 수 없다 ( 상수는 사용 가능 )
switch(조건값) {
	case 값1:
		조건값이 값1일때 실행하고자 하는 명령문;
		break;
	case 값2:
		조건값이 값2일때 실행하고자 하는 명령문;
		break;
	default:
		조건값이 어디에도 속하지 않으면 실행되는 명령문;
		break;
}

 

예시

// 1~7까지의 숫자를 입력받아 숫자별로 다음의 문자를 리턴(출력)
// 1 : 월요일 
// 2 : 화요일
// 3 : 수요일
// 4 : 목요일
// 5 : 금요일
// 6 : 토요일
// 7 : 일요일

Scanner s = new Scanner(System.in);
int day = s.nextInt();
switch(day) {
		case 1:
			System.out.println("월요일 입니다");
			break;
		case 2:
			System.out.println("화요일 입니다");
			break;
		case 3:
			System.out.println("수요일 입니다");
			break;
		case 4:
			System.out.println("목요일 입니다");
			break;
		case 5:
			System.out.println("금요일 입니다");
			break;
		case 6:
			System.out.println("토요일 입니다");
			break;
		case 7:
			System.out.println("일요일 입니다");
			break;
		default:
			System.out.println("잘못된 값입니다");
			break;
}
728x90
300x250
mag1c

mag1c

2년차 주니어 개발자.

JAVA (5) 연산자(Operator)

Tech/Java & Spring 2022. 11. 19. 19:27
728x90
728x90
연산자
  • 프로그램에서 데이터를 처리하여 결과를 산출하는 것을 연산이라 한다
  • 연산에 사용되는 표시나 기호를 "연산자" 라고 한다
  • 연산되는 데이터를 "피연산자" 라고 한다
  • 변수나 상수 등의 피연산자를 대상으로 연산을 수행하고 결과를 얻는 데 사용한다
  • 계산, 조건, 반복 등을 위해 사용하는 문법이다

 

1. 산술연산자
  • 수치연산을 위한 연산(사칙연산, %)
int a, b;
a=20; b=3;
System.out.println(a+b)
System.out.println(a-b)
System.out.println(a*b)

// a나누기b의 몫
System.out.println(a/b)

// 나눈 나머지값
System.out.println(a%b)

 

2. 관계연산자(비교연산자)
  • 연산자들간의 상대적인 크기를 판단하는 연산자
  • 좌항, 우항의 크기를 비교한다
  • 관계연산자는 2개의 항을 가지는 이항연산자이다
  • 연산자들의 결합 방향 : 좌 ㅡ> 우
	int a1=50, b1=20;
    
	// a==b : 좌항과 우항이 같으면 참을 리턴(출력)
	System.out.println("결과 : " + (a1==b1));
    
	// a!=b : 좌항과 우항이 다르면 참을 리턴
	System.out.println("결과 : " + (a1!=b1));
    
	// a>b : a가 b를 초과하면 참을 리턴
	System.out.println("결과 : " + (a1>b1));
    
	// a>=b : a가 b 이상이면 참을 리턴
	System.out.println("결과 : " + (a1>=b1));
    
	// a<b : a가 b 미만이면 참을 리턴
	System.out.println("결과 : " + (a1<b1));
    
	// a<=b : a가 b 이하면 참을 리턴
	System.out.println("결과 : " + (a1<=b1));

 

 

3. 논리연산자
  • 주어진 논리식을 판단하여 참과 거짓을 결정하는 연산자
  • AND, OR, NOT, XOR 등
  • 식을 조합하여 참 거짓을 판단한다
  • AND, OR은 이항연산자이다
  • 좌 ㅡ> 우 결합
  • NOT은 단항이다
  1. AND : &, &&  (논리식이 모두 참이면 참을 출력) ( & = 좌항 우항 모두평가, && = 좌항이 false이면 우항 평가 x )
  2. OR : |, ||  (논리식 중 하나라도 참이면 참을 출력) ( | = 좌항 우항 모두평가, || = 좌항이 true면 우항 평가 x )
  3. NOT : (논리식의 결과가 참이면 거짓, 거짓이면 참을 출력)
  4. XOR : ^  (논리식 중 모두 참이거나 거짓이면 거짓을 출력하고 참과 거짓을 하나씩 포함하면 참을 출력한다 )

 

 

4. 비트연산자(배우는 중)
  • 이진 연산
  1.  AND : & ( 비트 단위의 논리곱 )
  2. OR : | ( 비트 단위의 논리합 )
  3. NOT : ~ ( 비트 단위의 부정 )
  4. XOR : ^ ( 비트 단위의 배타적 논리합)

 


 

 

5. 대입연산자
  • a = b 라고 가정했을 때, 우항의 결과를 좌항에 대입하여 할당하는 연산자
  1. " = " : a=b일 때, 변수 b의 값을 변수 a에 할당
  2. " +=, -= " : 변수 a에 변수 b와 기존 a의 값을 더한 후 할당
  3. " *=, /=, %= " : 곱셈, 나눗셈, 나머지
  4. " ^= " : 두 수의 XOR 계산 결과 누적

 

 

6. 조건연산자
  • 삼항연산자이다
  • 조건식 ? 리턴값1 : 리턴값2
int num1 = 10, num2 = 20;
String result;
String num1 = "양수";
String num2 = "음수";

result = (num1-num2 > 0) ? num1 : num2;
System.out.println(result);

 

728x90
300x250
mag1c

mag1c

2년차 주니어 개발자.

(2) 급여명세서 만들어보기

Tech/Java & Spring 2022. 11. 19. 18:50
728x90
728x90

다음의 조건에 맞게 급여 명세서를 작성해주세요

 

  1. 기본급 10,000,000 수당 시간당 100,000 세금 기본급의 10%
  2. 실수령액 = 기본급 + 시간수당 - 세금
  3. 그달의 추가 근무시간이 6시간이라 가정했을 때 실 수령액을 계산해주세요

 

int pay = 10000000;
int workTimePay = 100000;
double tax = 0.1;
System.out.println("실수령액 : "+ (pay + workTimePay*6) - pay*tax);

 

728x90
300x250
mag1c

mag1c

2년차 주니어 개발자.

JAVA (4) 형 변환(Casting)

Tech/Java & Spring 2022. 11. 19. 18:36
728x90
728x90
형 변환(Casting)

  - 기존의 자료형에서 다른 자료형으로 변환하는 것

 


 

 

저장 가능 범위
  • 1byte : char, byte           (  -128 ~ 127  )
  • 2byte : boolean, short    (  -32,768 ~ 32,767  )
  • 4byte : int, float              (  -2,147,483,648 ~ 2,147,483,647  )
  • 8byte : long, double       (  -9,223,372,-036,854,775,808 ~ -9,223,372,-036,854,775,807  )
byte test1 = 5;
short test2;
// short는 byte보다 크기때문에 short 타입의 변수의 값을 byte 타입 변수에 할당할 수 없다 
test1 = test2;

 

byte test1 = 5;
short test2;
// byte타입의 변수를 short타입에 할당가능하다
// 할당되는 순간 해당 변수의 리터럴값은 byte에서 short로 변경된다
// 이것을 묵시적(암시적) 형 변환이라 부른다
test2 = test1;

 


int 정수1 = 10;
float 실수1 = 123.45f;
long 큰수1 = 123456789;

실수1 = 숫자1;
System.out.println(실수1);


// ※ long(8byte)에서 float(4byte)으로의 할당가능
// 다만 float의 최대 크기(자릿 수)를 넘지 않는 선에서 가능하다
실수1 = 큰수1;
System.out.println(실수1);

 

 

 

주의사항

  - 기존 데이터의 변질

byte test1 = 10;
short test2 = 20;
// 기본적으로 정수형끼리의 산술연산은 4byte로 암시적 형 변환후 계산
System.out.println(test1 + test2);

int num1 = 10;
float num2 = 123.555f;
// 정수형과 실수형을 연산 할 경우 기본적으로 실수형으로 변경
System.out.println(num1 + num2);

 

728x90
300x250
mag1c

mag1c

2년차 주니어 개발자.

JAVA (3) 상수(Constant)

Tech/Java & Spring 2022. 11. 19. 18:16
728x90
728x90
상수

  - 변하지 않는 값(=리터럴값)을 지정할 때 사용

  - 한 번 지정하면 바꿀 수 없다.

 

public class Constant{
	public static void main(String[] args){
		final int month = 12;
		final int hour = 24;
	}
}
728x90
300x250
mag1c

mag1c

2년차 주니어 개발자.

(1) 엄청 간단한 사칙연산 계산기 만들기

Tech/Java & Spring 2022. 11. 15. 21:52
728x90
728x90
		Scanner s = new Scanner(System.in);
		System.out.println("첫번째값입력");
		int cal1;
		cal1 = s.nextInt();
		System.out.println("두번째값입력");
		int cal2;
		cal2 = s.nextInt();
		System.out.println(cal1+cal2);
		System.out.println(cal1-cal2);
		System.out.println(cal1*cal2);
		System.out.println(cal1/cal2);
        
        
        // 이후 콘솔창에 첫번째 숫자값, 두번째 숫자값을 입력하면 +,-,*,/값이 한번에 나온다
728x90
300x250
mag1c

mag1c

2년차 주니어 개발자.

방명록