1. 지난 시간 복습 !! 
 - 프로그래밍이란 : 절차에 맞춰 이뤄지는 어떤 일들의 모음 
 - 자바 설치 방법 : 자바설치, 환경변수 설정, 개발 툴 설치 

 

- System.out.println() : 콘솔에 문자 출력 

- 사용자에게 값을 입력받을 수 있는 Scanner sc = new Scanner(System.in);

- String 비교하는 방법 

- 조건문

if (조건식) { 
    조건식의 결과가 참일 때 실행하고자 하는 명령문; 
} else { 
    조건식의 결과가 거짓일 때 실행하고자 하는 명령문; 
}

 

- 삼항연산자 => 조건식 ? 반환값1 : 반환값2 

 


* 타입 
- 정수형 : byte, short, int, long
  - 차이점은 값을 나타내는 범위입니다. 오른쪽으로 갈수록 큰 숫자를 표기할 수 있어요. 

- 실수형 : float, double
    double, float 의 차이는 ? 
    float형 타입이 소수 6자리까지는 정확하게 표현할 수 있으나, 그 이상은 정확하게 표현하지 못함을 보여줍니다.
   자바의 double형 타입은 소수 부분 15자리까지 오차없이 표현할 수 있습니다.

- 문자형 : char, String  
   char 는 한글자만,  String 여러 문자를 담을 수 있어요 

논리형 : boolean
   true, false 두가지로 논리 형태의 값을 저장할 수 있어요. 

 

-정수형 :

   byte b = 12;

   short, s =  32766;

   int  i = 1234456;

   long l = 12345645L;

 

-실수형 :

 double d= 453.523311903;

  float f= 0.2363F;

 

-문자형 : char

-char score = 'A';

-String s = “abn”;

 

-논리형 : boolean

- boolean ck = true;

 

 연습문제1 )  앞에 타입형태를 작성해주세요. 

 ? s1= false;
        
 ? s2= 'a';
        
 ? s3= 20;
        
 ? s4= 2147483648L; 


답 : boolean, char, int, long
연습문제2) 기본값을  설정해주세요. 

String  a = ?
        
int  b = ?
        
double c = ? 
        
float  d = ?

long  e = ?

boolean f = ? 

char g = ?

답 : "",  0, 1b, 1f, 1l,  true,  ''

 

 

산술 연산자 
+ : 왼쪽의 피연산자에 오른쪽의 피연산자를 더함.
-  : 왼쪽의 피연산자에서 오른쪽의 피연산자를 뺌.
*  : 왼쪽의 피연산자에 오른쪽의 피연산자를 곱함.
/  : 왼쪽의 피연산자를 오른쪽의 피연산자로 나눔.
%  : 왼쪽의 피연산자를 오른쪽의 피연산자로 나눈 후, 그 나머지를 반환함.

연습문제) 
int num1 = 8, num2 = 4;

System.out.println("/ 연산자에 의한 결과 : "+ (num1 / num2) +  "  나의 예상 값 : 값을 입력하세요. ");
System.out.println("% 연산자에 의한 결과 : "+ (num1 % num2) +  "  나의 예상 값 : 값을 입력하세요. ");

답1 : / 연산자에 의한 결과 : 2
답2: % 연산자에 의한 결과 : 0

 

 


대입 연산자(assignment operator) 
대입 연산자는 변수에 값을 대입할 때 사용하는 이항 연산자이며, 피연산자들의 결합 방향은 오른쪽에서 왼쪽입니다.
또한, 자바에서는 대입 연산자와 다른 연산자를 결합하여 만든 다양한 복합 대입 연산자를 제공합니다.

=   : 왼쪽의 피연산자에 오른쪽의 피연산자를 대입함.
+= : 왼쪽의 피연산자에 오른쪽의 피연산자를 더한 후, 그 결괏값을 왼쪽의 피연산자에 대입함.
-=  : 왼쪽의 피연산자에서 오른쪽의 피연산자를 뺀 후, 그 결괏값을 왼쪽의 피연산자에 대입함.
*=  : 왼쪽의 피연산자에 오른쪽의 피연산자를 곱한 후, 그 결괏값을 왼쪽의 피연산자에 대입함.
/=  : 왼쪽의 피연산자를 오른쪽의 피연산자로 나눈 후, 그 결괏값을 왼쪽의 피연산자에 대입함.
%= : 왼쪽의 피연산자를 오른쪽의 피연산자로 나눈 후, 그 나머지를 왼쪽의 피연산자에 대입함.
&= : 왼쪽의 피연산자를 오른쪽의 피연산자와 비트 AND 연산한 후, 그 결괏값을 왼쪽의 피연산자에 대입함.
|=  :  왼쪽의 피연산자를 오른쪽의 피연산자와 비트 OR 연산한 후, 그 결괏값을 왼쪽의 피연산자에 대입함.

 

 

예제 
int num1 = 7, num2 = 7, num3 = 7;
 
num1 = num1 - 3;
num2 -= 3;
num3 =- 3;
 
System.out.println("- 연산자에 의한 결과 : "+ num1);
System.out.println("-= 연산자에 의한 결과 : "+ num2);
System.out.println("=- 연산자에 의한 결과 : "+ num3);

 

 

증감 연산자(increment and decrement operators)

증감 연산자는 피연산자를 1씩 증가 혹은 감소시킬 때 사용하는 연산자입니다.

++x  : 먼저 피연산자의 값을 1 증가시킨 후에 해당 연산을 진행함.
x++  : 먼저 해당 연산을 수행하고 나서, 피연산자의 값을 1 증가시킴.
--x  : 먼저 피연산자의 값을 1 감소시킨 후에 해당 연산을 진행함.
x--  : 먼저 해당 연산을 수행하고 나서, 피연산자의 값을 1 감소시킴.

 

예제 
int num1 = 7, num2 = 7;
int result1, result2;

result1 = --num1 + 4;
result2 = num2-- + 4;

System.out.println("전위 감소 연산자에 의한 결과 : "+ result1 + ", 변수의 값 : " + num1);
System.out.println("후위 감소 연산자에 의한 결과 : "+ result2 + ", 변수의 값 : " + num2);

 

위의 예제에서 첫 번째 연산은 변수 num1의 값을 먼저 1 감소시킨 후에 나머지 연산을 수행합니다.
하지만 두 번째 연산에서는 먼저 모든 연산을 마친 후에 변수 num2의 값을 1 감소시킵니다.
따라서 변수 num2의 감소 연산자는 전체 연산에 어떠한 영향도 미치지 않습니다.

 

증감 연산자의 연산 순서
증감 연산자는 피연산자의 어느 쪽에 위치하는가에 따라 연산의 순서가 달라집니다.

예제) 
int x = 10;
int y = x-- + 5 + --x;
System.out.println("x : "+ x + ", y : " + y);

 

 

비교 연산자(relational operator)
비교 연산자는 피연산자 사이의 상대적인 크기를 판단하는 연산자입니다.

== : 왼쪽의 피연산자와 오른쪽의 피연산자가 같으면 참을 반환함.
!=  : 왼쪽의 피연산자와 오른쪽의 피연산자가 같지 않으면 참을 반환함.
>  : 왼쪽의 피연산자가 오른쪽의 피연산자보다 크면 참을 반환함.
>=  :  왼쪽의 피연산자가 오른쪽의 피연산자보다 크거나 같으면 참을 반환함.
<  : 왼쪽의 피연산자가 오른쪽의 피연산자보다 작으면 참을 반환함.
<=  : 왼쪽의 피연산자가 오른쪽의 피연산자보다 작거나 같으면 참을 반환함.

 

예제
 char ch1 = 'a', ch2 = 'A';
System.out.println("== 연산자에 의한 결과 : "+ (ch1 == ch2));
System.out.println("> 연산자에 의한 결과 : "+ (ch1 > ch2));

 

논리 연산자(logical operator)
논리 연산자는 주어진 논리식을 판단하여, 참(true)과 거짓(false)을 결정하는 연산자입니다.
&& 논리식이 모두 참이면 참을 반환함. (논리 AND 연산)
|| 논리식 중에서 하나라도 참이면 참을 반환함. (논리 OR 연산)
! 논리식의 결과가 참이면 거짓을, 거짓이면 참을 반환함. (논리 NOT 연산)

 

예제 
   
int a = 100, b = 70;
boolean result1, result2, result3;

result1 = (a > 50) && (b < 100) ;
result2 = (a < 50) && (b < 100) ;
result3 = (a < 50) || (b < 100) ;

System.out.println("&& 연산자에 의한 결과1 : "+ result1);
System.out.println("&& 연산자에 의한 결과2 : "+ result2);
System.out.println("|| 연산자에 의한 결과 : "+ result3);

 



switch  조건문 
switch 를 사용하면 여러 개의 조건 값을 한 번에 검사할 수 있습니다.

switch (조건 값) { 

    case 값1: 
        조건 값이 값1일 때 실행하고자 하는 명령문; 
        break; 
    case 값2: 
        조건 값이 값2일 때 실행하고자 하는 명령문; 
        break; 
    default: 
        조건 값이 어떠한 case 절에도 해당하지 않을 때 실행하고자 하는 명령문; 
        break; 
}
예제 
switch (1) {

    case 1:
        System.out.println("숫자 1입니다.");
        break;
    case 2:
        System.out.println("숫자 2입니다.");
        break;
    default:
        System.out.println("case에 등록되지 않은 숫자입니다.");
        break;
}

 

 

최종 마무리 문제 

숫자 맞추기 게임!! 

int user=0;
int com=(int)(Math.random()*5)+1; // 1~5 까지의 랜덤의 숫자를 구해주는 함수 

System.out.println("==========================게임방법 =======================");
System.out.println(" 1~5까지의 숫자가 있습니다. 그 중 컴퓨터가 고른 숫자를 맞추면 승리! ");

System.out.println("=========== 게임을 시작합니다============");
System.out.println("숫자를 입력해주세요!");

// 사용자에게 값을 입력받아주세요. 
// 숫자값은 scan.nextInt()로 받아주세요. 
// 스위치 문을 사용해서 
// 같은 경우와 같지 않은경우에 대해서 case 문을 작성해주세요. 
// 게임 결과와 컴퓨터가 고른 숫자와 사용자가 입력한 숫자를 출력해주세요. (System.out.println 사용)


정답 
Scanner scan=new Scanner(System.in);
user=scan.nextInt();

switch(com-user) {
	case  0 :	
		System.out.println("사용자 Win");
		break;
   	default :
   		System.out.println("컴퓨터 Win");
   		break;	
   	}
System.out.println("사용자 " + user + " 컴퓨터 : " + com);

 

 

'JAVA 강의 ( 초급)' 카테고리의 다른 글

AJAX 기초 수업 개념 정리!!  (0) 2021.02.18
SpringBoot Ajax 사용하기!  (0) 2021.02.18
JSON 에 대해서 알아봅시다.  (0) 2021.02.17
JAVA 기초 3강  (0) 2020.10.04

+ Recent posts