[day03]

1. 연산자 operator
 
1) 종류 
단항 연산자 : + - (int 타입등) ++ -- !
이항 연산자 : 산술연산자 : + - * / % 
      비교연산자 : <  <= > >= == != (결과 true/false)
      논리연산자 : && || 


삼항 연산자 : ?  :
대입 연산자 : =
복합대입 연산자 : 산술 + 대입 : = += -= *= /= %=
(쉬프트/비트 연산자)

2) 연산자 우선순위 (높은순)
단항연산자 : ++ -- (전위형)
     + - (양수음수)  
     ++ -- (후위형)

형변환 : (타입)
산술연산자 : * / %
   : + - (덧셈뺄셈)
(쉬프트)
비교연산자 : <  <= > >=  instanceof
   : == !=
(비트)
논라연산자 : && (and) 
   : || (or)
삼항연산자 : ?:
복합대입연산자 : = += -= *= /= %= 


2. 제어문 
- 조건문 : if, switch
- 반복문 : While, do-while, for, 업그레이드 for (forEach)
- 보조제어문 : break, continue

break : 강제종료
continue : (반복문에서 주로 사용) 아래 작성된 실행문 건너뛰고 다음 반복으로 넘어간다. 

3. 조건문 if
조건이 참이면 영역안의 코드를 실행

1) 구조 
#1.
if(조건식){
//조건이 참일 경우 실행해야될 코드들 작성

}

조건식 : 비교연산이나 논리연산이 혼합된 식으로 구성한다.
                또는 boolean 타입의 변수가 올 수 있다.
        -> 결과 또는 값이 true/ false가 와야함
영역을 뜻하는 {} 중괄호 기호는 영역안에 들어갈 명령문이 1개면 생략가능

#2.
if(조건식){
//조건이 참일 경우 실행할 코드들
}else {
  //조건이 거짓일 경우 실행할 코드들
}


else : 뒤에 조건식이 안붙고 바로 {} 영역
혼자 사용불가. if와 else의 순서가 바뀌어도 안됨
옵션처럼 반드시 써야되지는 않는다.

#3.
if(조건식1){
//조건식1이 참이면 실행할 코드들
}else if(조건문2){
//조건식2이 참이면 실행할 코드들
}else if(조건문3){
//조건식3이 참이면 실행할 코드들
}else {
// 위의 모든 조건이 거짓일때 실행할 코드들..
}

 

package day03;

public class Test20 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

	

	// 증감 연산자 : ++, --
	// 전위형 : 나 먼저
	// 후위형 : 가장 나중에
	/*
	int a = 10;
	System.out.println(a);
	++a;
	System.out.println(a);
	--a;
	System.out.println(a);
	System.out.println(++a);
	System.out.println(--a);
	*/
		
	int b = 10;
	System.out.println(b);
	System.out.println(b++);
	System.out.println(b);
	}
}

 

 

 

package day03;

public class Test21 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		// 대입연산자 : 대입해야 변수안의 값이 변견된다.
		 /* int a = 10;
		  System.out.println(a+10);
		  System.out.println(a);
		  // a = a + 10
		  
		  int i =5 , j = 5;
		  System.out.println(i++);  // 5
		  System.out.println(++j);  // 6
		  System.out.println(+j); 
		
		  System.out.println("i=" +i+", j=" + j );
		  */
		
		  
		  // 문제 1. 출력결과를 먼저 주석으로 적어보고 실행
		 /*
		  int k = 10;
		  System.out.println(k++); // 10
		  System.out.println(++k); // 12
		  					 ++k;  // 13
		  System.out.println(++k); // 14
		  System.out.println(k++); // 14
		  System.out.println(k);    // 15
		  */
		
		
		  //문제2 r의 결과
		  int a = 10;
		  int b = 10;
		  int r = ++a + ++b;   // 11+ 11 22
		  r = ++a + b++;    
		  //System.out.println(r);// 12 + 11 23
		  r = ++a + a ;     
		  //System.out.println(r);//    // 13 + 13
		  r = ++a + a++ ;     
		  //System.out.println(r);//   // 14 + 14
		
		  r = ++a + ++a ;      //    // 16 + 17
		  System.out.println(r);
				
	}
}

 

package day03;

public class Test22 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		/* 단축키 
		 *  실행 : ctrl + F11 
		 * syso 적고 ctrl + space 
		 * 공백만들기 shift + enter 공백만들기
		 * 한줄복사 : ctrl + alt + 화살표 위/아래
		 * 이동 : alt + 화살표 위/아래
		 * 한줄삭제 : ctrl + D
		 * 맨첫줄로 : Home  / 맨뒷줄로 END
		 * 
		 * */
		
		
		// 사칙연산 : + - * / % (나머지값)
		int a = 10 + 10;
		System.out.println(a);
		int b = 10 % 3 ;   // (나머지 값)
		System.out.println(b);
		
		long l = (long) 100000 * 100000;  // * 100000 은 인트타입이라 long 형변환 해줘야함
		long k = 100000L * 100000;  // * 100000 은 인트타입이라 long 형변환 해줘야함
		System.out.println(l);
		System.out.println(k);

	}
}

 

 

 

package day03;
import java.util.Scanner;

public abstract class Test23 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		
	
		
		/*
		// 문제1. 숫자 2개를 입력받고, 사칙연산 결과를 출력해보세요.
		
		Scanner No1 = new Scanner(System.in);	
			int num1 , num2 ;
		 System.out.println("값 1을 입력하세요 >>");
		/* int num1 = Integer.parseInt(sc.nextLine()); */
		/*num1 = No1.nextInt();
		System.out.println("값 2를 입력하세요 >>");
		/*int num2 = Integer.parseInt(sc.nextLine()); */
		
		/*num2 = No1.nextInt();
		
		System.out.println("덧셈출력값은" + (num1 + num2) + "입니다") ;
		System.out.println("곱셈출력값은" + (num1 * num2) + "입니다");
		System.out.println("뺄셈출력값은" + (num1 - num2) + "입니다");
		System.out.println("나눗셈출력값은" + (num1 / num2) + "입니다");
		*/
		
		
	    
		// 문제2. 초단위로 정수를 입력받고,
	     //         계산된 "??분??초" 형태로 출력해보세요. 
		 
	        
	        Scanner No2 = new Scanner(System.in);
	        System.out.println("초를 입력>> ");
	        int sec = No2.nextInt();
	    	/*int sec = Integer.parseInt(No2.nextLine()); */
	        System.out.println((sec / 60) + "분"  + (sec%60)+ "초" + "입니다"); 
	      
	        No2.close();
		
	
	/*
	     / 문제3. 초단위로 정수를 입력받고, "??시간??분??초" 형태로 출력해보세요.
	   	
	        int sec;
	        Scanner No3 = new Scanner(System.in);
	        System.out.println("초를 입력>> ");
	     sec = No3.nextInt();
	        
	    
	        System.out.println((sec/3600) + "시간" + ((sec%3600)/60)+"분" + (sec%60) +"초");
	       
    */
	        
	      /* 문제4. 최소 화폐 매수 구하기
	                금액을 입력받으면, 최소한의 화폐매수를 구해주는 프로그램 
	          콘솔예시)


	          금액입력 :   67800   <- 사용자가 입력 
	          5만원 : 1장
	          1만원 : 1장
	          5천원 : 1장
	          1천원 : 2장
	          5백원 : 1개
	          1백원 : 3개
	                
		 Scanner No4 = new Scanner(System.in);
		System.out.println("금액을 입력하세요");
	    int money = Integer.parseInt(No4.nextLine());
	    System.out.println("5만원 : "  + (money / 50000) + "장");
	    System.out.println("1만원 : "  + (money % 50000/10000) + "장");
	    System.out.println("5천원 : "  + (money % 10000/5000) + "장");
	    System.out.println("1천원 : "  + (money % 5000/1000) + "장");
	    System.out.println("5백원 : "  + (money % 1000/500) + "장");
	    System.out.println("1천원 : "  + (money % 500/100) + "장");
    */
	     
	}
}
package day03;

public class Test24 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		// 비교 연산자 : < <= > >= == !=
	int a = 10;
	int b = 5;
	
	int c = a + b ;
	boolean d = a  != b;
	System.out.println(d);
		
		
		// 논리 연산자 : && ||
		// %% : and
		// a && b : a, b 둘다 참이여야 함 
		
		// || : or
		// a || b : a, b 둘중 하나라도 참이면 참

	boolean result = a >= b || a > b  && b > 0; // && 부분을 먼저 연산함  result = a >= b || (a > b  && b > 0)
	System.out.println(result);
	
		// 삼항 연산자 
		// true / false의 결과식 ? 참일때 결과값 : 거짓일때 결과값;
		// a = 10 , b = 5
	

	System.out.println(a < b ? a : b);
 	int res =   a > b ? a : b ;
	char resCh = a > b ? 'O' : 'X' ;
	
	
	}

}
package day03;

public class Test25 {

	public static void main(String[] args) {
// TODO Auto-generated method stub

//	int a = 10;
	//System.out.println(a = a +10);
	 
	//System.out.println(a);
		
		
		// 복합 대입 연산자 : += -= *= /= %=
		int a = 10;
		System.out.println(a);
		a = a + 1; // a += 1; // a++; 같은 말임
		System.out.println(a);
		a += 1;
		System.out.println(a);
		
		a -= 10;   // a = a - 10; 동일함
		a *= 3;    // a = a * 3
		System.out.println(a);
		
		a /= 3;   // a = a / 3 ;
		
		a %= 3; // a = a % 3;
		
		int b = 10;
		int c = 20;
		boolean d = b < c ;
		System.out.println(!d);    // ! : (not 연산자) true / false 값을 반전 시키는 연산자 
	}
}
package day03;
import java.util.Scanner;
public class Test26 {

	public static void main(String[] args) {
	/*
		int a = 20;
		if(a>10) {
			System.out.println("a는 10보다 크다");
			System.out.println("a는 10보다 크다");
			System.out.println("a는 10보다 크다");
			System.out.println("a는 10보다 크다");
			
		}
		// a - 10 하고 10이랑 비교
		// 연산자 우선순위에 따라 산술연산 먼저 계산됨
		
		if(a- 10 < 10) {
			System.out.println("안녕하세요");
			
		}
		
		
		int score = 50;
		if (score >= 60) {
			System.out.println("합격입니다");
		}
		if (score< 60) {
			System.out.println("불합격입니다");
		}
		
		
		if (score >= 60) {
			System.out.println("합격입니다");
		}else {

			System.out.println("불합격 입니다");
			
		System.out.println(score>= 60? "합격" : "불합격");
		}
		*/
		
		
		//문제 : 점수하나를 입력받고
		// 90점 이상이면 "수" 80점 이상이면 "우"
		// 70점 이상이면 " 미" 그 이하는 "재시험" 출력
		
		
		
		Scanner exam = new Scanner(System.in);
				
		System.out.println("점수를 입력하세요 >>");
				//String a = exam.nextLine();
				//int point = Integer.parseInt(a);
				// => int point = Integer.parseInt(sc.nextLine());
		int point = Integer.parseInt(exam.nextLine());
				if(point >= 90) {
					System.out.println("수");
				}else if(point>=80) {
					System.out.println("우");
				}else if(point>=70) {
					System.out.println("미");
				}else {
					System.out.println("재시험");
				}
		
		/*	///if(score > 100{
				System.out.println("점수가 이상해요");
		}else {
				if(score >= 90) {
					System.out.println("수");	
					} else if (score >= 80) {
					System.out.println("우");
					} else {
					System.out.println("재시험");
							
					}
		 						*/	
		exam.close();
	}
}
package day03;
import java.util.Scanner;
	public class Test27 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		//* 연산자 문제*
		// 문제1. 정수 두개를 입력 받고, 몫과 나머지를 출력하세요.
		// 문제2. 일(day)수 입력받고, 몇개월 몇일인지 출력해보세요.
		//	단, 한달은 30일로 고정		
		// 문제3. 점수를 3개를 입력받고, 총점과 평균을 구하여 촐력해보세요.
			
		//*if문 문제*
		// 문제4. 숫자하나를 입력받고, "음수"인지 "양수"인주 "0"인지 출력해보세요.
		// 문제5. 1~99 사이 숫자를 입력받고. "짝수" 인지 "홀수"인지 출력해보세요.
		// 문제6. 정수 3개를 입력받고, 3개의 숫자중 가장 큰 수를 출력하세요.
		
		/* 문제 1번		
		Scanner sc = new Scanner(System.in);
		int num1 , num2 ;
		
		System.out.println("값 1을 입력하세요>>");
		num1 = sc.nextInt();
		
		System.out.println("값 2을 입력하세요>>");		
		num2 = sc.nextInt();
		
		System.out.println("몫은" + (num1/num2) + "입니다");
		System.out.println("나머지는" + (num1%num2) + "입니다");
 		*/
		/* 문제 2번
		Scanner sc = new Scanner(System.in);
				System.out.println("숫자를 입력하세요 >>");
				int day = sc.nextInt();
		System.out.println((day/30)+"개월"+(day%30)+"일 입니다.");
		*/
		
		/*
		Scanner sc = new Scanner(System.in);
		int num1 , num2 , num3;
		
		System.out.println("값 1을 입력하세요>>");
		num1 = sc.nextInt();
		
		System.out.println("값 2을 입력하세요>>");
		num2 = sc.nextInt();
		
		System.out.println("값 3을 입력하세요>>");
		num3 = sc.nextInt();
		
		System.out.println("총점은 "+ (num1+num2+num3)+"이고" + "평균은"+((num1+num2+num3)/3)+"입니다");
		*/
		
			//*if문 문제*
			// 문제4. 숫자하나를 입력받고, "음수"인지 "양수"인지 "0"인지 출력해보세요.
			// 문제5. 1~99 사이 숫자를 입력받고. "짝수" 인지 "홀수"인지 출력해보세요.
			// 문제6. 정수 3개를 입력받고, 3개의 숫자중 가장 큰 수를 출력하세요.
		/*
		Scanner sc = new Scanner(System.in);
		System.out.println("숫자 하나를 입력하세요>>");
		int num1 = sc.nextInt();
			if(num1 > 0) {
				System.out.println("양수");
			}else if(num1 < 0){ 
				System.out.println("음수");
			}else if(num1 == 0){
				System.out.println("0");
		    }
		*/
		
	/*
		Scanner sc = new Scanner(System.in)	;
				System.out.println("1 ~ 99 숫자하나를 입력하세요 >>");
		int num1 = sc.nextInt();
		 if(num1 > 0 && num1 < 100){	
			if(num1%2==0) {
				System.out.println("짝수입니다");
				} else 	{	
				System.out.println("홀수입니다");
				}
		}else {
		 System.out.println("1~99 사이의 숫자가 아닙니다");
		 }
	*/
		/*
		Scanner sc = new Scanner(System.in);
		//int num1 , num2 , num3;
		System.out.println("정수 1값을 입력하세요");
		int num1 = sc.nextInt();
		
		System.out.println("정수 2값을 입력하세요");
		int num2 = sc.nextInt();
		
		System.out.println("정수 3값을 입력하세요");
		int num3 = sc.nextInt();
		
		if(num1 > num2) {
			if (num1>num3) {
				System.out.println(num1);
			}else {
				System.out.println(num3);
			}
		}
		else {
			if (num2>num3) {
			System.out.println(num2);
			} 
			else {
			System.out.println(num3);
			}
		}
			
			
			/*
		 * if((num1>num2)&&(num1>num3)) {
		 
			System.out.println("정수 1값이 가장 큰값입니다.");
			}else if((num1>num2)&&(num1<num3)) {
			System.out.println("정수 3값이 가장 큰값입니다.");
			}else if((num1<num2)&&(num1>num3)) {
			System.out.println("정수 2값이 가장 큰값입니다.");
			}else if((num1<num2)&&(num1<num3)) {
			System.out.println("정수 3값이 가장 큰값입니다.");
			}
		
		*/
		
		
		
		/* 문제7. 2차원 평면에서 직사각형은 
        왼쪽 상단 모서리와 오른쪽 하단 모서리 두점으로 표현한다. 
      (100,100) 과 (200, 200) 의 두점으로 이루어진 사각형이 있을때,
      정수 x, y 값을 입력받고 점(x, y)가 이 직사각형안에 
      있는지 판단하는 프로그램을 작성하세요. 
		 */
		
		Scanner sc = new Scanner(System.in);
		int x, y;
		System.out.println("x값을 입력하세요");
		x = sc.nextInt();
		System.out.println("y값을 입력하세요");
		y = sc.nextInt();
		
		//boolean result = ((x > 100 && x < 200) && ( y > 100 && y < 200));
		//if((200 > x > 100 ) && (200 > y > 100)); { 
		//if(result==true) 
		if((x >= 100 && x <= 200) && ( y >= 100 && y <= 200)){ 
			System.out.println("사각형 안에 존재합니다");
		}else {
			System.out.println("존재하지않습니다");
		}
		
		
		sc.close();
		
	
	}
}

'P-Language > [Java]' 카테고리의 다른 글

[Java] 6 - 다차원 배열  (0) 2022.06.03
[Java] 5 - 배열  (0) 2022.06.03
[Java] 4 - 조건문(switch), 반복문  (0) 2022.06.03
[Java] 2 - 변수와 입,출력문  (0) 2022.06.03
[Java] 1 - 환경 변수와 자바의 기본  (0) 2022.06.03

+ Recent posts