Notice
Recent Posts
Recent Comments
Link
«   2025/09   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
Archives
Today
Total
관리 메뉴

스포츠마케터의 초보 개발자 도전기

JAVA study 02 본문

develop/JAVA

JAVA study 02

teammate brothers 2024. 3. 5. 10:03

수업시간에 간단한 업무도 처리하면서 수업을 들을려니 집중이 안된다.

여튼...

오늘의 수업

오늘 수업부터는 간단한 예시 문제가 추가되었다

1. Operator (연산자)

package ex1_operator;

public class Ex1_operator {
	public static void main(String[] args) {
		
//Ctrl+/ 하면 여러줄 주석

//<연산자>
//	 1. 최고연산자 : . , ()
//	 2. 증감연산자 : ++, --
//	 3. 산술연산자 : +, -, *, /, %
//	 4. 시프트연산자 : >>, <<, >>>
//	 5. 비교연산자 : >, <, >=, <=, ==, !=
//	 6. 비트연산자 : &, |, ^, ~
//	 7. 논리연산자 : &&, ||, !
//	 8. 삼항(조건) 연산자 : ?, :
//	 9. 대입연산자 : =, *=, /=, %=, +=, -=
		
		//산술연산자
		//4칙연산과 나머지 연산자를 가지고 있다.
		int n1 = 20;
		int n2 = 7;
		int n3 = n1 + n2;
		System.out.println("+연산 : " + n3); //syso Ctrl+space > System.out.println(); 단축키
		
		n3 = n1 - n2;
		System.out.println("-연산 : " + n3);

		n3 = n1 * n2;
		System.out.println("*연산 : " + n3);
		
		n3 = n1 / n2; //정수끼리 나누기 연산자 사용시 몫만 가지고 옴
		System.out.println("/연산 : " + n3);
		
		n3 = n1 % n2; //정수끼리 나머지 연산자 사용시 두 수를 나눈 나머지만 가지고 옴
		System.out.println("%연산 : " + n3);
		
		float a1  = n1 / n2;
		System.out.println(a1);
		
		float a2  = (float)n1 / n2; //둘중 하나는 캐스팅을 해야 소숫점 아래자리까지 표기
		System.out.println(a2);
		
		System.out.println("--------------------");
		
		//대입연산자 : 특정값을 변수에 전달하여 기억시킬때 사용하는 연산자
		int i1 = 10;
		int i2 = 7;
		i1 += i2; //i1 = i1 + i2; 를 줄인것
		System.out.println("+=연산자 : " + i1);
		
		i1 -= 5;//i1 = i1 - 5;
		System.out.println("-=연산자 : " + i1);
		
		i1 %= i2;//i1 = i1 % i2;
		System.out.println("%=연산자 : " + i1);
		
		i2 /= 3;
		System.out.println("/=연산자 : " + i2);
		
		System.out.println("--------------------");
	
		
		
	}//main
}

 

package ex1_operator;

public class Ex2_operator {
	public static void main(String[] args) {
		
		//비교연산자
		//변수의 값을 비교하여 참과 거짓을 판단하는 연산자
		int n1 = 10;
		int n2 = 20;
		boolean res = n1 < n2; // < 작다 lt(little than), > 크다 gt(greater than)
		System.out.println("< 비교연산자 : " + res);
		
		res = n1 >= n2;
		System.out.println(">= 비교연산자 : " + res);
		
		res = n1 == n2;
		System.out.println("== 비교연산자 : " + res);
		
		res = n1 != n2;
		System.out.println("!= 비교연산자 : " + res);
		
		System.out.println("--------------------");

		//논리연산자
		//비교연산자를 통한 연산이 두 개 이상 필요할때 사용
		
		//&&(and) 연산자 : 앞쪽의 연산이 false라면 뒷쪽을 수행하지 않는다 (중요)
		//true && true -> true
		//true && false -> false
		//false && true -> false
		//false && false -> false

		int age = 22;
		int limit = 30;
		boolean result = limit - age <= 5 && (age += 1) <= 25; //&&전 연산이 false면 뒷 연산은 아예 안함
		System.out.println("age :" + age); //↑ &&전 연산이 false면 뒷 연산은 아예 안함 그래서 23이 아니고 22
		System.out.println("&& 논리연산자 : " + result);
		
		
		//|| (or) 연산자 : 앞쪽 연산이 true라면 뒷쪽을 수행하지 않는다(중요)
		//true || true -> true
		//true || false -> true
		//false || true -> true
		//false || false -> false
		int i1 = 10;
		int i2 = 20;
		result = (i1 += 10) > 20 || i2 - 10 == 11;
		System.out.println("|| 논리연산자 : " + result);
		
		//!(not) 연산 : boolean 타입의 연산자 연산 값에 ! 를 붙이면 true-false 값이 바뀜
		System.out.println(!result);//!은 일시적으로만 변경된 값을 제공
		System.out.println(result);//없으면 원래 값으로 회귀
		
		
		
	}//main
}
package ex1_operator;

public class Ex3_operator {
	public static void main(String[] args) {
		
		//증감연산자
		//1씩 증가시키거나, 1씩 감소시키는 연산자
		//선행증감과 후행증감의 차이점을 구별할 줄 알아야 함
		int a = 10;
		System.out.println("a :" + ++a); //선행증가
		
		int b =10;
		System.out.println("b : " + b++); //후행증가
		System.out.println(b);
		
		b++;//11 (12)
		--b;//11 (11)
		--b;
		++b;
		b--;
		++b;
		b++;
		System.out.println(b--);
		System.out.println(b);
		
		System.out.println("---------------------");
		
		//삼항(조건)연산자
		//하나의 조건식을 주고, 그 결과가 참일때와 거짓일때에 따라 원하는 형태의 값을 언어내고자 할 때 사용하는 연산자
		
		a = 10;
		b = 15;
		int res = ++a >= b ? 10 : 50; // a < b ? c : d; a가 b보다 작을때(참) c값, 클때(거짓) d값 //자료형은 연산결과에 따라 지정
		System.out.println("res : " + res);
		
		int n1 = 10;
		int n2 = 20;
		char res2 = (n1 += n1) == n2 ? 'A' : 'B';
		System.out.println("res2 : " + res2);
		
	}//main
}
package ex1_operator;

public class Ex4_operator {
	public static void main(String[] args) {
		
		int a = 10;
		int b = 12;
		char res = ++a >= b || 2 + (b - 5) <= b && a + 2 - b >= 0 && (a += b) - (a % b) > 10 ? 'O' : 'X';
		          //11 >= 12 || 9 <= 12  (true) && 1 >= 0 (true)  &&    23    -    11  > 10
		System.out.println(res);
		System.out.println("---------------------");
		
		/* 연습문제
		 과수원이 있다.
		 배, 사과, 오렌지를 키우고 있는데
		 하루생산량은 5, 7, 5개
		 
		 1) 과수원에서 하루에 생산되는 과일의 총 갯수를 출력
		 2) 시간당 전체 과일의 평균 생산 갯수를 출력
		  * 단, 평균값을 담을 변수는 float로 생성할 것
		 */
		
		int pear = 5; //처음부터 자료형을 int 말고 float로 해도 됨 (비추)
		int apple = 7;
		int orange = 5;
		int dailyTotal = pear + apple + orange; //dailyTotal을 float 자료형 형태로 받아도 됨
		System.out.println("일 전체 생산 갯수 : " + dailyTotal);
		
		float dailyAvgPerHour = (float)dailyTotal / 24; //이렇게 예외적 캐스팅해도 되고, 24를 24f 타입으로 바꿔도 됨
		System.out.println("일 평균 생산 갯수 : " + dailyAvgPerHour);
		
		
	}//main
}

 

2. Control Statement (제어문)

1) if / else / else if

package ex2_control_statement;

public class Ex1_if {
	public static void main(String[] args) {
		
		//제어문 : 프로그램의 흐름을 제어하는 문장
		
		//1) 분기문 : if, switch 
		//2) 반복문 : for, while
		
		/*if문의 형태 : if( 조건식 ) { 
		 조건식이 참일 때 수행되는 영역;
		}*/
		
		int n = 51;
		//String - ""안에 여러 글자(문장, 문자열)를 입력할 수 있는 (자료)형
		String str = ""; //가방은 있으나 안에 내용이 없음
		//String str = null; 이런 형태는 담을 가방조차 없음
		
		if( n == 50 ) {
			str = "n은 50입니다";
		}
		
		if( n != 50 ) {
			str = "n은 50이 아닙니다";
		}
		
		System.out.println(str);
	
		
	}//main

}
package ex2_control_statement;

public class Ex2_if_else {
	public static void main(String[] args) {
		
		//if-else : 조건이 참일때만 결과를 만들어 낼 수 있는 if문과는 달리
		//조건이 참일때와 거짓일때를 모두 커버할 수 있는 제어문
		
		/* if( 조건식 ) {
			조건식이 참일때 수행하는 영역;
			}else {
			조건식이 거짓일때 수행하는 영역;
			}
		*/
		
		char gender = '여';
		
		if( gender == '남') {
			//조건식이 참일때 접근하는 영역
			System.out.println("남자화장실로 가시오");
		}else {
			//조건식이 거짓일 때 반드시 수행되는 영역
			System.out.println("여자화장실로 가시오");
		}
		
		System.out.println("--------------------");
		
		
		int age = 20;
		String str ="";
		
		if(age >= 20) {
			str = "합격";
		}else {
			str = "불합격";
		}
		
		System.out.println(str);
		
		System.out.println("--------------------");
		

		//age변수에 나이를 대입하고
		//height 변수에 키를 대입
		//나이가 15살 이상이면서 키가 150이상이면
		//'롤러코스터 탑승가능'
		//그렇지 않다면
		//'롤러코스터 타지말고 회전목마나 타시지'
		
		int height = 160;
		String res ="";
		if(age >= 15 && height >= 150) {
			res = "롤러코스터 탑승가능";
			//System.out.println("롤러코스터 탑승가능");
		}else {
			
			res = "롤러코스터 타지말고 회전목마나 타시지";
			//System.out.println("롤러코스터 타지말고 회전목마나 타시지");
		}
		System.out.println(res);
		
		System.out.println("--------------------");

		
		//위의 회전목마 코드를 삼항연산자로 변경하시오
		
		res = age >= 15 && height >= 150 ? "탑승가능" : "탑승불가능";
		System.out.println(res);
		
		
	}//main

}
package ex2_control_statement;

public class Ex3_else_if {
	public static void main(String[] args) {
		
		//else-if : 여러개의 조건 비교가 필요할 때 사용
		int num = 75;
		String res ="";
		
		if ( num >= 90 ) {
			res = "A";
		}else if( num >= 80 ){
			res = "B";
		}else if( num >= 70) {
			res = "C";
		}else if( num >= 60) {
			res = "D";
		}else {
			res = "F";
			
		}
		
		System.out.println(res);
	
		
	}//main
}

 

2) switch

package ex3_control_statement;

public class Ex1_switch_case {
	public static void main(String[] args) {
	
		//switch-case문 : 비교값과 조건값을 통해 원하는 결과를 찾아내는 제어문
		
		//switch문에서 사용가능한 비교값의 타입
		//정수(byte, short, int)
		//문자(char), 문장/문자열(String)
		// 정수타입 중 *long은 안됨, 실수(float, double) 안됨 /boolean 안됨
		
		/*
		 switch( 비교값 ){
		 	case 조건값:
		 		비교값과 조건값이 일치하면 실행되는 영역
		 	break;
		 }
		 */
		
		int n = 2;
		//비교값과 조건값의 valueType은 반드시 일치해야 한다
		
		switch( n ) {//비교값 
		case 1 : //조건값
			System.out.println("1.게임시작");
			break;
			
		case 2 :
			System.out.println("2.게임소개");
			break;
			
		case 3 :
			System.out.println("3.게임종료");
			break;
		
			
		default : //예를 들어 1~3까지의 값을 입력하지 않고 실수로 다른 수를 입력할 경우가 있을 수 있기 때문에 하나의 가이드를 주는 디폴트값을 높은 확률로 switch문 마지막에 넣는다.
			//비교값과 조건값이 하나도 일치하지 않을 때
			System.out.println("1~3까지만 입력하세요");
			break;
		}//switch
		
	}//main

}
package ex3_control_statement;

public class Ex2_switch_case {
	public static void main(String[] args) {
		
		char sungjuck = 'B';
		
		switch ( sungjuck ) {
		case 'A' : 
			System.out.println("90 ~ 100");
			break;
			
		case 'B' : 
			System.out.println("80 ~ 89");
			break;
			
		case 'C' : 
			System.out.println("70 ~ 79");
			break;
			
		case 'D' : 
			System.out.println("60 ~ 69");
			break;
								
		case 'F' : 
			System.out.println("59점 이하");
			break;
			
		default :
			System.out.println("해당성적은 존재하지 않습니다.");
			break;
		}//switch
		
	}//main
}
package ex3_control_statement;

public class Ex3_switch_case {
	public static void main(String[] args) {
		
		String lastName = "경주김씨";
		
		switch( lastName ) {
		
		case "김해김씨" :
			System.out.println("412만명");
			break;
		
		case "경주김씨" :
			System.out.println("173만명");
			break;	
			
		case "광산김씨" :
			System.out.println("483만명");
			break;
			
		default :
			System.out.println("죄송합니다. 데이터가 없습니다.");
			break;
		}//switch
		
		
	}//main
}

 

예제1) switch 예제

package ex4_work;

public class Ex1_work {
	public static void main(String[] args) {
		
		//12월은 31일까지 있습니다. 를 Switch문으로 표현하세요.
		int month = 12;
		
		switch ( month ) {
		case 1 : 
			System.out.println("1월은 31일까지 있습니다.");
			break;
			
		case 2 : 
			System.out.println("2월은 28일까지 있습니다.");
			break;
			
		case 3 : 
			System.out.println("3월은 31일까지 있습니다.");
			break;
			
		case 4 : 
			System.out.println("4월은 30일까지 있습니다.");
			break;
			
		case 5 : 
			System.out.println("5월은 31일까지 있습니다.");
			break;
			
		case 6 : 
			System.out.println("6월은 30일까지 있습니다.");
			break;
			
		case 7 : 
			System.out.println("7월은 31일까지 있습니다.");
			break;
			
		case 8 : 
			System.out.println("8월은 31일까지 있습니다.");
			break;
			
		case 9 : 
			System.out.println("9월은 30일까지 있습니다.");
			break;
			
		case 10 : 
			System.out.println("10월은 31일까지 있습니다.");
			break;
			
		case 11 : 
			System.out.println("11월은 30일까지 있습니다.");
			break;
			
		case 12 : 
			System.out.println("12월은 31일까지 있습니다.");
			break;
			
		default :
			System.out.println("올바른 달을 입력하세요");
			break;
			
		}//switch
				
	}//main
}
package ex4_work;

public class Ex2_work {
	public static void main(String[] args) {
		
		
		//아래 세개가 가진 변수를 보고 한줄로 표현 (계산기)
		int su1 = 20;
		int su2 = 5;
		String op = "*";
		
		switch ( op ) {
		case "+" :
			System.out.println(su1 + op + su2 + "=" + (su1 + su2));
			break;
			
		case "-" :
			System.out.println(su1 + op + su2 + "=" + (su1 - su2));
			break;
			
		case "*" :
			System.out.println(su1 + op + su2 + "=" + (su1 * su2));
			break;
			
		case "/" :
			System.out.println(su1 + op + su2 + "=" + (su1 / su2));
			break;
			
		default :
			System.out.println("올바른 식을 입력하세요.");
			break;
		}//switch
		
		
		
	}//main
}

 

예제2) if 예제

package ex4_work;

public class Ex3_work {
	public static void main(String[] args) {
		
		//연도가 4로 나누어 떨어지면 윤년이다.
		//연수가 100으로 나누어 떨어지면 평년
		//4년 주기라도 100으로 나누어 떨어지면 평년
		//100으로 나누어 떨어지더라고 400으로 나누어 떨어지면 윤년
		
		int year = 2040;
		String res = "";
		
		if ( year % 4 == 0 && year % 100 != 0 || year % 400 == 0 ) {
			res = "윤년";
		}else{
			res = "평년";
			}
		System.out.println(year+"년은 "+res+"입니다");
		
		
		
	}//main
}

'develop > JAVA' 카테고리의 다른 글

JAVA study 05  (0) 2024.03.05
JAVA study 04  (0) 2024.03.05
JAVA study 03  (1) 2024.03.05
JAVA study 01  (4) 2024.03.05
Prologue  (0) 2024.03.05