(103)

JAVA (8) 반복문 (for, while, do~while)

반복문 프로그램 내에서 똑같은 명령을 일정 횟수만큼 반복하여 수행하도록 제어하는 명령문 for, while, do~while, 향상된 for문(Enhanced for) for 문 for(초기값; 조건값; 증감값){ 조건값이 참일 경우 실행되는 코드들 }​ 실행 순서 초기화 조건식 확인 코드 수행 증감식 수행 다시 조건식 확인 조건식이 false일 때까지 2 ~ 4 무한반복 for문과 배열 // 배열 요소들을 한꺼번에 출력하는 방법 String[] cars = {"현대", "기아", "쌍용", "벤츠", "아우디", "BMW"} for(int i=0; i

JAVA (7) 배열

배열 같은 타입의 변수들로 이루어진 유한한 집합 인덱스 : 배열의 위치를 가리키는 숫자(0번부터 시작) 요소(element) : 배열을 구성하는 각각의 값 1차원, 2차원.......n차원까지 만들 수 있다 length = 배열 전체의 길이를 찾는 매서드 // 변수타입[] 변수명; = {배열요소1, 2, 3, 4, ....}; // 변수타입 변수명[] // 배열 예시 1 String subject1 = "한국어"; String subject2 = "수학"; String subject3 = "영어"; String[] subject = {"한국어", "수학", "영어"}; System.out.println(subject[2]); // 배열 예시 2 String[] human = new String[3]; h..

(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..

JAVA (8) 반복문 (for, while, do~while)

Tech/Java,Kotlin,Spring 2022. 11. 22. 21:20
728x90
728x90

 

반복문

  • 프로그램 내에서 똑같은 명령을 일정 횟수만큼 반복하여 수행하도록 제어하는 명령문
  • for, while, do~while, 향상된 for문(Enhanced for)

 

for 문

 

for(초기값; 조건값; 증감값){
	조건값이 참일 경우 실행되는 코드들
}​

 

  • 실행 순서
  1.  초기화
  2.  조건식 확인
  3.  코드 수행
  4.  증감식 수행
  5.  다시 조건식 확인
  6.  조건식이 false일 때까지 2 ~ 4 무한반복

 

 

  • for문과 배열
// 배열 요소들을 한꺼번에 출력하는 방법
String[] cars = {"현대", "기아", "쌍용", "벤츠", "아우디", "BMW"}
for(int i=0; i<cars.length; i++){
	System.out.println(cars[i]);
}
// length = 배열 전체의 길이를 찾는 메서드

 

 

  • 이중 for문의 실행 순서
  1.  외부 for문 실행(외부 for문 초기화)
  2.  외부 for문 조건식 확인
  3.  외부 for문 코드 실행(내부 for문을 만나기 전까지)
  4.  내부 for문 실행(내부 for문 초기화)
  5.  내부 for문 조건식 확인
  6.  내부 for문 코드 실행
  7.  내부 for문 조건이 false일 때까지 반복
  8.  내부 for문이 false가 되면 대기중이던 외부 for문 실행
  9.  이 과정을 외부 for문이 끝날 때까지 반복
// 이중 for문으로
// 구구단 2단부터 9단까지 출력하기

for(int i=2; i<=9; i++){
	System.out.println(i+"단입니다");
    for(int j=1; j<=9; j++){
    	System.out.println(i + " * "+j+ " = "+j * i);
        }
}

 

 

  • for 문의 무한 반복
// 무한히 번호가 찍히는 안녕 출력

int aa=0;
for(;;){
	System.out.println("안녕"+aa);
}

 

 

 

while 문

  • 특정한 조건을 만족할 때 까지 계속해서 주어진 명령문을 반복 실행하는 코드
  • while문은 무한반복에 많이 사용된다
  • or문과는 다르게 조건지정이 관대하다
  • while문 사용 시 종료조건을 지정해야 한다
while(조건식){
	조건식의 결과가 참인동안 반복적으로 실행하고자 하는 명령문
}

// while문 예시
int i=0;
while(true){
	i++;
    System.out.println("나무를 "+i+"번 째 찍고있습니다.");
}
// 종료조건 지정방법
// 1. 조건을 명확히 작성하기.
int i =1;
while(i<=10) {
	System.out.println("나무를 "+i+"번째 찍었습니다.");
	i+=1;
}


// 2. 키워드를 활용하기
int i =1;
while(i<=10) {
	System.out.println("폭주기관차가 "+i+"km째 달리고 있습니다.");
	i+=1;
if(i>10) {
	System.out.println("슈퍼맨이 폭주기관차를 부셔버림 ㅇㅇ");
	break;
	}
}

 

 

do~while 문

  • 반복문 내부를 한번 실행한 후 조건식을 검사
  • 조건식을 만족하지 못해도 무조건 한번은 실행
int k = 100;
do {
	System.out.println("ㅋㅋㅋ");
 	}while(k>200);     // k는 100이지만 한번은 실행된다.

 

 

 

break, continue

  • break : 하나의 반복문을 빠져나올 때 사용
  • continue : continue가 포함된 반복문을 계속 반복한다. continue이후의 반복문은 실행 x
728x90
300x250
mag1c

mag1c

2년차 주니어 개발자.

JAVA (7) 배열

Tech/Java,Kotlin,Spring 2022. 11. 19. 20:23
728x90
728x90

배열

  • 같은 타입의 변수들로 이루어진 유한한 집합
  • 인덱스 : 배열의 위치를 가리키는 숫자(0번부터 시작)
  • 요소(element) : 배열을 구성하는 각각의 값
  • 1차원, 2차원.......n차원까지 만들 수 있다
  • length = 배열 전체의 길이를 찾는 매서드
// 변수타입[] 변수명; = {배열요소1, 2, 3, 4, ....};
// 변수타입 변수명[]

 

// 배열 예시 1
String subject1 = "한국어";
String subject2 = "수학";
String subject3 = "영어";
String[] subject = {"한국어", "수학", "영어"};
System.out.println(subject[2]);


// 배열 예시 2
String[] human = new String[3];
human[0] = "인간1";
human[1] = "인간2";
human[2] = "인간3";
System.out.println(human[2]);
System.out.println(human.length); // 배열 전체의 길이를 찾는 메서드

 

배열과 for 문

// 배열과 for문
int[] arr2 = new int[] {60, 80, 70, 50};
for(int i=0; i<arr2.length; i++) {
	if(arr2[i]>=65) {
		System.out.println((i+1)+"번째 학생은 합격입니다");
	}
	else if(arr2[i]<65) {
		System.out.println((i+1)+"번째 학생은 불합격입니다");
	}
//	System.out.println(arr2[i]>=65 ?
//			(i+1)+"번째 학생은 합격입니다" :        // 삼항연산자 사용 가능하다
//			(i+1)+"번째 학생은 불합격입니다");
	}
1번째 학생은 불합격입니다
2번째 학생은 합격입니다
3번째 학생은 합격입니다
4번째 학생은 불합격입니다

 

 

다차원 배열

// 배열 요소의 합 구하기

// int[][] test12 = new int[3][3]; // 3x3의 배열 생성 , 행 ㅡ> 열 순
int[][] test12 = {{10,20,30}, {40,50,60}, {70,80,90}};
int sum=0;
for(int i=0; i<test12.length; i++) {
	for(int j=0; j<test12[i].length; j++) {
		sum+=test12[i][j];
	}
}
System.out.print(sum);


출력된 값 : 450
728x90
300x250
mag1c

mag1c

2년차 주니어 개발자.

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

Tech/Java,Kotlin,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,Kotlin,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,Kotlin,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,Kotlin,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,Kotlin,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,Kotlin,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,Kotlin,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년차 주니어 개발자.

방명록