반응형

[Oracle Java Tutorial을 읽고 순서에 의해 정리한 후 본인의 경험과 이해를 바탕으로 작성된 글임을 밝힌다.]

[Java Tutorial, 자바 프로그래밍 기초 배우기, Java Programming, 자바 튜토리얼]

2019/06/20 - [Software/Java] - [Java_Tutorial]11강-자바 코딩, 같음 관계 조건 연산자[Operators, 자바 프로그래밍 기초 , 자바 튜토리얼]

 

[Java_Tutorial]11강-자바 코딩, 같음 관계 조건 연산자[Operators, 자바 프로그래밍 기초 , 자바 튜토리얼]

[Oracle의 Java Tutorial을 읽고 순서에 의해 정리한 후 본인의 경험과 이해를 바탕으로 작성된 글임을 밝힌다.] [Java Tutorial, 자바 프로그래밍 기초 배우기, Java Programming, 자바 튜토리얼] 앞 포스팅에 이..

tiboy.tistory.com

이번 포스팅은 자바 프로그래밍(Java Programming)을 하기 위한 기본 표현, 구문과 블록에 대해 알아본다.

표현식, 구문, 블럭 (Expressions, Statements, and Blocks)

자바 프로그래밍(java programming)에서 코딩을 하기 위해서는 먼저 표현식을 만들어야 한다. 그 표현식들을 이용해서 구문이 만들어지고 구문들을 묶어 주는 것이 블록이다.

표현식(Expressions)

표현식은 변수, 연산자, 메서드 호출을 만들어 구성하는 것으로 자바 언어 문법을 기반으로 작성된다. 문법에 어긋나면 오류가 난다.

표현식은 기존 예제에서 이미 사용되었다.

Int a = 0;

intArray[0] = 1;

val1 == val2

System.out.println(“val1==val2”);

굵은 부분이 표현식이다. 표현식을 보면 변수에 대한 데이터 타입을 알 수 있다. a = 0에서 a0이라는 값이 할당(“=”)된다. 그럼 a는 숫자형(int type) 변수라는 의미이다. 다른 표현식도 보면 val1 == val2Boolean 타입이고 “val1==val2”String 타입을 나타낸다.

또한 자바 프로그래밍(Java Programming)에서는 복합 표현식도 지원한다. 이는 자바 프로그래밍 뿐 아니라 일반 수학에서 적용되는 부분과 같다. 예를 들어

4*5*7

위 표현식은 사용함에 있어 순서를 바꿔서 계산해도 항상 같은 값이 나오므로 큰 문제가 되지 않는다. 하지만 다음 예제를 보면 순서에 의해 값이 달라지고 그 값에 따라 타입도 달라질 수 있다.

95+5/100

위 연산자는 +보다 /가 우선순위라서 95.05가 된다. 표현식만 보면 정수형(int) 타입이지만 막상 계산을 하면 95.05로 실수형(float/double) 타입이 된다. 하지만

(95+5)/100

표현식의 변수들은 같지만 ( ) 를 씌워서 우선 순위를 변경했다. 위 식의 결과는 1이다. 즉 정수형(int) 타입의 결과가 나온 것이다. ( ) 로 표현식의 타입이 바뀔 수 있다는 것이다. 중요한 것은 표현식을 애매하게 사용해서 개발자 본인 뿐 아니라 다른 개발자에게도 혼선을 줘서는 안된다. 명확하고 간단하면서 가독성이 좋은 표현식을 만드는 것이 가독성에도 좋고 유지보수에서도 중요하다는 것을 잊으면 안된다.

 

 

구문(Statements)

구문은 한 단위를 실행하기 위한 완벽한 구성이어야 한다. 표현식(expressions)는 연산자를 이용한 할당이나 계산식만 만드는 것으로 그 자체가 완벽한 실행 단위는 아니다. 자바 프로그래밍(Java Porgramming)에서 코딩(coding)시 하나의 실행 단위로 문장을 완성하고 한 단위당 완료의 표시로 “;”를 사용한다. 예를 들어

할당 표현식, 증감 연산자(++,--), 메서드 호출, 객체 생성식

int a = 0;

a = 100;

a++;

System.out.println(“abc”);

BankClient bc = new BankClient();

위 구문은 표현식을 이용한 구문이다. 구문(Statements)은 크게 2가지로 구분할 수 있다. 위의 예제와 같은 선언 구문과 제어 흐름 구문이다. 제어 흐름 구문(Control flow statements)은 추후 별도 포스팅 하겠다.

블록(Blocks)

블록은 그룹을 만들 때 사용하는데 구문이 하나도 없거나 (빈 블록) 여러 개의 구문을 묶을 때 사용한다. 그룹은 { } (중괄호)를 사용한다. 예제로 확인해 보자.

Class BlockTest { // 클래스 그룹을 { 로 그룹 시작

Public static void main(String[] args) { // 메인 메서드 그룹 { 로 시작

If (condition) { // if 구문 그룹 { 로 시작

System.out.println(“Test”);

} // if 구문 그룹 } 로 시작

} // 메인 메서드 그룹 } 로 종료

} // 클래스 그룹을 } 로 종료

자바 코딩(java coding)을 위해서 기본적으로 익혀야 할 구문 만들기에 대해 알아보았다. 먼저 필요한 표현식을 구상해서 작성하고 표현식 또는 제어 흐름 구문을 실행 가능 단위로 구성해서 ;로 정리하고 해당 구문들을 그룹화 해서 관리하면 된다.

2019/06/24 - [Software/Java] - [Java_Tutorial]13강-자바 코딩, if else 제어문[Control Flow Statements, 자바 프로그래밍 기초 , 자바 튜토리얼]

 

[Java_Tutorial]13강-자바 코딩, if else 제어문[Control Flow Statements, 자바 프로그래밍 기초 , 자바 튜토리얼]

[Oracle의 Java Tutorial을 읽고 순서에 의해 정리한 후 본인의 경험과 이해를 바탕으로 작성된 글임을 밝힌다.] [Java Tutorial, 자바 프로그래밍 기초 배우기, Java Programming, 자바 튜토리얼] 2019/06/22 - [..

tiboy.tistory.com

다음 포스팅은 제어 흐름 구문(Control Flow Statements)에 대해 알아본다. 이제 점점 자바 프로그래머로 재미를 느끼게 되는 시간이 다가오고 있다. 열심히 공부하고 열심히 코딩하라!

반응형
반응형

[Oracle Java Tutorial을 읽고 순서에 의해 정리한 후 본인의 경험과 이해를 바탕으로 작성된 글임을 밝힌다.]

[Java Tutorial, 자바 프로그래밍 기초 배우기, Java Programming, 자바 튜토리얼]

앞 포스팅에 이어서 다른 연산자에 대해 설명해 본다. 실제 개발에 자주 사용되므로 잘 보고 숙지해야 한다.

2019/06/19 - [Software/Java] - [Java_Tutorial]10강-자바 코딩, 할당 산술 단항 연산자[Operators, 자바 프로그래밍 기초 , 자바 튜토리얼]

 

[Java_Tutorial]10강-자바 코딩, 할당 산술 단항 연산자[Operators, 자바 프로그래밍 기초 , 자바 튜토리얼]

[Oracle의 Java Tutorial을 읽고 순서에 의해 정리한 후 본인의 경험과 이해를 바탕으로 작성된 글임을 밝힌다.] [Java Tutorial, 자바 프로그래밍 기초 배우기, Java Programming, 자바 튜토리얼] 앞 포스팅에서..

tiboy.tistory.com

같음, 관계 그리고 조건 연산자 (Equality, Relational, and Conditional Operators)

같음과 관계 연산자 (The Equality and Relational Operators)

피연산자보다 큰지, 작은지, 같은지, 다른지 판단하는 연산자를 같음과 관계 연산자 또는 비교 연산자라고 한다. 주의할 점은 같다는 “==”로 사용하지 “=”로 하면 안 된다. "="는 할당 연산자이다. 어떤 연산자가 있는지 확인해 본다.

== 같다.

!= 같지 않다.

> 크다.

>= 크거나 같다.

< 작다.

<= 작거나 같다.

이 연산자는 실제 프로젝트에서 자주 사용된다. 중요하니 아래 예제를 통해 잘 익혀 두길 바란다.

조건문 if 는 곧 포스팅할 계획이니 그냥 참고로 보길 바란다. 특이한 점은 String 문자열 d, e는 같다고 나오지만 new String()로 생성한 객체는 ef, fg는 다르다고 나온다. 이유는 새로운 객체를 생성했고 객체 자체를 비교하기 때문이다. 단순 값을 비교하는게 아니기에 같지 않은 것이다.

조건 연산자 (The Conditional Operators)

조건 연산자 “&&”“||”를 확인해 본다. 조건 AND와 조건 OR로 동작하며 Boolean(true/false)로 판별된다. 이 연산자의 특징은 연산자 앞 뒤의 조건 중 앞의 조건을 먼저 판명하고 뒤의 연산자는 필요시에만 평가한다는 것이다. 무슨 의미인지 예를 들어 본다.

if ((조건1) && (조건2))

이 식은 AND(그리고) 조건 연산자로 조건 1과 조건 2둘 다 참(true)인 경우에만 true가 된다. 만약 조건 1이 참이 아니면 (false) 조건 2를 평가할 이유가 없다. 그래서 조건 2를 확인하지 않는다.

if ((조건1) || (조건2))

이 식은 OR(또는) 조건 연산자로 조건 1이 참이거나 또는 조건 2가 참이면 true가 된다. 즉 둘 중 하나만 참이면 참(true)인 것이다. 그래서 조건 1이 참이라면 굳이 조건 2를 평가할 이유가 없는 것이다.

 

 

이는 단락 행위라고 하는데 두 번째 연산자는 필요시에만 평가한다는 의미이다. 이 또한 잘 활용하면 실전에서 유용하다.

또 하나의 조건 연산자가 있는데 정말 간단하게 조건을 표현할 때 유용하게 사용되는 연산자이다.

“?:” 연산자로 예문을 통해 확인해 본다.

조건이 true면 ? 뒤의 첫 번째 값을 false: 뒤의 두 번째 값을 리턴한다.

한 줄로 가볍게 조건문을 사용할 때 유용하다. 특히 값 할당에 사용하면 가독성도 좋고 간단해서 좋다. 당연 실전에서도 가끔 사용한다.

타입 비교 연산자 instanceof (The Type Comparison Operator instanceof)

이건 또 무엇일까? 클래스 또는 인터페이스 타입(type)을 비교한다는데 어떤 의미인지 살펴본다. 당연히 실전에서 자주 사용하는 연산자이기 때문에 반드시 이해하고 숙지하길 바란다.

객체의 명시된 타입을 비교하는 연산자로 생성된 객체가 어떤 클래스의 인스턴스인지 확인할 때 유용하다. 역시 예문을 통해 확실히 이해해 보자.

부모클래스 a1 = new 부모클래스();

부모클래스 a2 = new 자식클래스();

(a1 instanceof 부모클래스) 는 true를 반환한다. (a2 instanceof 자식클래스) true를 반환한다. 하지만 a1 instanceof 자식클래스 는 false를 반환한다. 부모와 자식클래스에 대한 자세한 설명은 추후 포스팅에서 instanceof를 활용해서 자세히 알아보겠다.

“null”은 어떤 인스턴스도 아니다.

2019/06/22 - [Software/Java] - [Java_Tutorial]12강-자바 코딩, 표현식 구문 블록[Expressions, Statements, Blocks, 자바 프로그래밍 기초 , 자바 튜토리얼]

 

[Java_Tutorial]12강-자바 코딩, 표현식 구문 블록[Expressions, Statements, Blocks, 자바 프로그래밍 기초 , 자바 튜토리얼]

[Oracle의 Java Tutorial을 읽고 순서에 의해 정리한 후 본인의 경험과 이해를 바탕으로 작성된 글임을 밝힌다.] [Java Tutorial, 자바 프로그래밍 기초 배우기, Java Programming, 자바 튜토리얼] 2019/06/20 - [..

tiboy.tistory.com

다음 포스팅은 식, 구문, 블록에 대해 알아본다.

반응형