JAVA공부기록[생활코딩]

[Java]연산자, 비교와 Boolean, 조건문 개념 정리 및 예제//생활코딩입문

ssong2ku 2022. 3. 28. 20:26
728x90

· 연산자

특정한 작업을 위해 사용하는 기호.

 

· 연산자의 종류

작업의 종류에 따라 나뉨,(산술, 비교, 논리 등)

 

 -산술연산자

수학적인 계산에 사용되는 연산자.

+ 더하기 // 숫자와 숫자 뿐 아니라, 문자열과 문자열 결합시에도 사용
- 빼기
* 곱하기
/ 나누기
% 나눈 후 나머지

concat : 괄호 안 문자열을 전부 결합해서 반환해 주는 함수

 

-> 연산자의 형변환

정수보다 더 넓은 범위인 소수로 자동형변환이 된다.

-단항 연산자

하나의 항을 대상으로 연산이 이루어지는 연산자.

 

+ 양수를 표현. 실제로는 사용할 필요 X
- 음수 표현.
++ 증가(increment)연산자로 항의 값을 1씩 증가.
-- 감소(decrement)연산자로 항의 값을 1씩 감소.

 

 ++i는 i의 값에 1이 더해진 값을 출력, i++는 이것이 속해있는 println에 일단 현재 i의 값을 출력 후,

println의 실행이 끝난 후에 i의 값이 증가하는 특성

 

-연산자의 우선순위

생활코딩입문

int a = 4-3*6;

위의 구문에는 3가지의 연산자가 등장한다. =, -, * 이다. 표에 따라서 우선순위 별로 배열해보면 *, -, =

외울필요는 없음. 이해하기!

 

· Boolean(=bool)

참과 거짓의 의미하는 데이터 타입, true와 false 두 가지의 값

Dead Code가 나왔을 때, 불린을 이용하는 방법//데드코드는 직접적인 값을 비교할 때,  실행자체의 필요성을 못느껴 코드가 비활성화.

-비교 연산자(관계연산자)

1. ==

​System.out.println(1==2); //false
System.out.println(1==1); //true
System.out.println("one"=="two"); //false
System.out.println("one"=="one"); //true

2. ! =

!는 부정의 의미, ==와 반대의 결과.

System.out.println(1!=2); //true
System.out.println(1!=1); //false
System.out.println("one"!="two"); //true
System.out.println("one"!="one"); //false

 

3. >

좌항이 우항보다 크면 참, 그렇지 않으면 거짓, ' < '는 반대의 의미

System.out.println(10>20); //false
System.out.println(10>2); //true
System.out.println(10>10); //false

 

4. >= 

좌항이 우항보다 크거나 같다. '<='은 반대의 의미

System.out.println(10 >= 20); // false
System.out.println(10 >= 2); // true
System.out.println(10 >= 10); // true

 

5. ' .equals '

문자열을 비교할 때 사용하는 메소드

String a = "Hello world";
String b = new String("Hello world");
System.out.println(a == b); // false  -> 두 개의 데이터 타입이 동일한 객체이기 위해 사용하는 연산자.
System.out.println(a.equals(b)); // true -> 서로 다른 객체들 간의 값을 비교할 수 있음.

· 조건문

주어진 조건에 따라 애플리케이션을 다르게 동작하도록 하는것.

프로그래밍의 핵심 중 하나.

boolean값을 기준으로 실행흐름 제어

 

-문법

 

1. if

if절의 값이 true 일 때, then 절 실행.

public static void main(String[] args) {
if(true){
System.out.println("result : true"); // result : true 출력

if(false){
System.out.println("result : true"); // 출력 X, if절이 거짓이기 때문.

2번예제에서 if(false)은 실행되지 않고, 관련없는 그 다음 로직실행

2. else

if만으로는 좀 더 복잡한 상황을 처리하는데 부족. 

if-else절은 if 절의 값이 true일 때 then절이 실행되고, false일 때 else절이 실행.

if (true) {
System.out.println(1);
} else {
System.out.println(2); // 결과 :1
}

if(false){
System.out.println(1);
} else {
System.out.println(2); // 결과 : 2
}

 

3. else if

조건문의 흐름을 좀 더 자유롭게 제어.

if절의 값이 참이라면 then절 실행. false 라면 else if절로 제어가 자동으로 넘어감.

else if절의 값이 true라면 else if then절이 실행. false라면 else 절이 실행. else if절은 여러 개가 복수로 등장할 수 있고, else절은 생략이 가능. else 절이 else if 절보다 먼저 등장할 수는 없다.
-> true 가 한 번 이라도 나오면 그 구간을 출력하고, if 구간은 종료.

 

변수와 비교연산자 그리고 조건문

-> 위의 것들을 이용해서 작은 프로그램 만들기(사용자가 입력한 아이디 값 체크)

 

1. 참, 거짓을 출력해내기 위해서는 입력값이 필요함

2. 입력값을 직접 설정

프로그램 실행 시 입력값 제공설정

3. " ssong2 "를 입력했다면 right 뜸

4. 아이디, 비번을 같이 검증해야 한다면 조건문은 조건문안에 중첩가능

 

4. switch문(if문보다 사용빈도 낮음, if와 대체가능)

switch 뒤의 괄호에 숫자로 1이 주어지면 case 1에 해당하는 로직 이후의 모든 case들이 실행

코드에 break;를 추가하면 switch 문의 실행이 즉시 중지

switch문-> if문으로 변경가능

5. default

주어진 케이스가 없는 경우 default 문이 실행

 

˙논리연산자(Conditional Operator)

boolean의 값을 결합해서 코드를 간결하게 만들 수 있음

 

-&&(And) : 좌항과 우항의 값이 모두 참일 때, true

중첩된 if 문을 하나로 줄일 수 있음.

-||(Or) : 좌우항 중에 하나라도 참이면 전체가 true.

입력값 id : haeng, 비번 111111 입력의 결과. &&와도 혼합가능.

 

-!(Not) : 부정의 의미, 불린 값 역전

!true == false이기 때문에 다음 if절 실행. !false는 참이므로 결과값 2

 

 

 

728x90