반응형
변수(Variable)란?
  • 변하는 수
  • 하나의 값을 저장할 수 있는 저장공간.
변수의 타입(Data type)

■ 기본형(Primitive Type)

- 8개 (boolean, char, byte, short, int, long, float, double)

- 실제 값을 저장

■ 참조형(Reference type)

- 기본형을 제외한 나머지(String, System 등...)

- 객체의주소를 저장(4byte, 0x00000000~0xffffffff)

 

  기본형(Primitive Type)
  1. 논리형 - true와 false 중 하나의 값으로 갖으며, 조건식과 논리적 계산에 사용
  2. 문자형 - 문자를 저장하는데 사용되며, 변수 당 하나의 문자만을 저장할 수 있다.
  3. 정수형 - 정수 값을 저장하는데 사용된다. 주로 사용하는 것은 int와 long이며, byte는 이전데이터를 다루는데 사용되며, short는 c언어와 호환을 위해 추가되었다.
  4. 실수형 - 실수 값을 저장하는데 사용, float와 double이 있다.

변수의 선언 방법

★ 타입 변수명

int score;

score 100;

int score 100;

String str = new String("abc");

          str = null;

 명명규칙(Naming convention)
  • 대소문자가 구분되며 길이에 제한이 없다 // True와 true는 서로 다른 것으로 간주된다.
  • 예약어(Reserved word)를 사용해서는 안 된다. // ture는 예약어라 사용할 수 없지만, True는 가능하다. 
  • 숫자로 시작해서는 안 된다. // top10은 허용하지만, 7up은 허용되지 않는다.
  • 특수문자는 '_' 와 '$' 만을 허용한다. // $harp은 허용되지만 S#arp는 허용되지 않는다.
명명규칙 - 권장사항
  • 클래스 이름의 첫 글자는 항상 대문자로 한다. // 변수와 메서드 이름의 첫 글자는 항상 소문자로 한다. 
  • 여러 단어 이름은 단어의 첫 글자를 대문자로 한다. // lastIndexOf, StringBuffer
  • 상수의 이름은 대문자로 한다. 단어는 '_'로 구분한다. // PI, MAX_NUMBER
변수, 상수, 리터럴
  • 변수(variable) - 하나의 값을 저장하기 위한 공간
  • 상수(constant) - 한 번만 값을 저장할 수 있는 공간
  • 리터럴(literal) - 그 자체로 값을 의미하는것 
int score = 100;
    score = 200;
char ch = 'A';
String str = "abc";
final in MAX = 100;
MAX = 200; // 에러, 상수의 값은 변경불가!
리터럴과 접미사
boolean power = true;
char ch = ‘A’;
char ch = ‘\u0041’;
char tap = ‘\t’;
byte b = 127;
short s = 32767;
int I = 100;
int oct = 0100;
int hex = 0x100;
long l = 10000000000L;
float f = 3.14f;
double d = 3.14d
float f = 100f;
10. -> 10.0
.10 -> 0.10
10f -> 10.0f
3.14e3f -> 3140.0f
1e1 -> 10.0
변수의 기본값과 초기화

변수의 초기화 ?

- 변수에 처름으로 값을 저장하는 것

* 지역변수는 사용되기 전에 반드시 초기화해주어야 한다.

문자와 문자열

정수의 오버플로우(Overflow)

부호가 없는 정수

부호가 있는 정수

형변환(Casting)

형변환이란?

- 값의 타입을 다른 타입으로 변환하는 것

- boolean을 제외한 7개의 기본형은 서로 형변환이 가능

folat f = 1.6f;

int i = (int)f;

1. byte -> int

byte b = 10;

int i = (int) b; // 생략가능

2. int -> byte

int i2 = 300;

byte b2 = (byte) i2; // 생략불가

 

형식화된 출력 - printf()

▶ println()의 단점 - 출력방식을 지정불가하다는 점!

1. 실수의 자리수를 조절불가 - 소수점 n 자리만 출력하려면?

System.out.println(10.0 / 3);  // 3.333333....

2. 10진수로만 출력된다. - 8진수, 16진수로 출력하려면?

System.out.println(0x1A);  // 26

 

▶ printf() 로 출력형식 지정가능하다.

System.out.println("%.2f", 10.0/3);  // 3.33

System.out.println("%d", 0x1A);  // 26

System.out.println("%X", 0x1A);  // 1A

 

printf()의 지시자
  • %b  : 불리언(boolean) 형식으로 출력 (true or false)
  • %d  : 10진수(decimal) 형식으로 출력
  • %o  : 8진수(octal) 형식으로 출력
  • %x, %X  : 16진수(hexa-decimal) 형식으로 출력 (%x는 소문자로, %X는 대문자로 출력)
  • %f  : 부동 소수점(floating point) 형식으로 출력
  • %e, %E  : 지수(exponent) 형식으로 출력
  • %c  : 문자(character) 형식으로 출력 (Unicode)
  • %s  : 문자열(string) 형식으로 출력

public static void main(String[] args) {

System.out.printf("age:%d year:%d\n", 14, 2017);

// "age:14 year:2017\n" 이 화면에 출력된다.

 

int age = 10;

System.out.printf("age:%d", age); // 출력 후 줄바꿈을 하지 않는다.

System.out.printf("age:%d\n", age); // 출력 후 줄바꿈을 한다.

System.out.printf("=================");

// 정수를 10진수, 8진수, 16진수로 출력

System.out.printf("%d\n", 15); // 15 >> 10진수

System.out.printf("%o\n", 15); // 17 >> 8진수

System.out.printf("%x\n", 15); // f >> 16진수

System.out.printf("%s\n", Integer.toBinaryString(15)); // 1111 >> 2진수

 

// 8진수와 16진수에 접두사 붙이기

System.out.printf("%#o\n", 15); // 017

System.out.printf("%#x\n", 15); // 0xf

System.out.printf("%#X\n", 15); // 0xF

 

// 실수 출력을 위한 지시자 %f - 지수형식(%e), 간단한 형식(%g)

float f = 123.4567890f;

System.out.printf("%f", f); // 123.456787 소수점 아래 6자리

System.out.printf("%e", f); // 1.2345678e+02 지수형식

System.out.printf("%g", 123.456789); // 123.457 간략한 형식

System.out.printf("%g", 0.00000001); // 1.00000e-8 간략한 형식

 

System.out.printf("[%5d]%n", 10); // [       10]

System.out.printf("[%-5d]%n", 10); // [10       ]

System.out.printf("[%05d]%n", 10); // [00010]

화면에서 입력받기 - Scanner

★ Scanner 란?

화면으로부터 데이터를 입력받는 기능을 제공하는 클래스

 

★ Scanner를 사용하려면

1. import 문 추가

import java.util.Scanner;

2. Scanner 객체의 생성

Scanner scanner = new Scanner(System.in);

3. Scanner 객체를 사용

Scanner scanner = new Scanner(System.in);

int num = scanner.nextInt(); // 화면에서 입력받은 정수를 num에 저장

 

String input = scanner.nextLine(); // 화면에서 입력받은 내용은 input에 저장

 

int num = Integer.parseInt(input); // 문자열(input)을 숫자(num)로 변환

반응형

'Java > Java 이론' 카테고리의 다른 글

[JAVA] 생성자  (0) 2023.08.01
[JAVA] 배운내용정리 (2)  (0) 2023.07.29
[JAVA] 인스턴스 생성과 힙 메모리  (0) 2023.07.28
[JAVA] 함수와 메서드  (0) 2023.07.28
[JAVA] 객채지향 언어  (0) 2023.07.28
반응형
인스턴스(instance)
  • 클래스는 객체의 속성을 정의하고, 기능을 구현하여 만들어 놓은 코드 상태(설계도면)이다.
  • 실제 클래스 기반으로 생성된 객체(인스턴스)는 각각 다른 멤버 변수 값을 가지게 됩니다.
  • 가령, 학생의 클래스에서 생성된 각각의 인스턴스는 각각 다른 이름, 학번, 학년등의 값을 가지게 됩니다.
  • new 키워드를 사용하여 인스턴스를 생성합니다.
힙 메모리
  • 생성된 인스턴스는 동적 메모리(heap memory)에 할당됩니다.
  • C나 C++ 언어에서는 사용한 동적 메모리를 프로그래머가 해제시켜야 합니다.
  • Java에서 Gabage Collector가 주기적으로 사용하지 않는 메모리를 수거합니다.
  • 하나의 클래스로부터 여러개의 인스턴스가 생성되고 각각 다른 메모리 주소를 가지게 됩니다.

스택과 힙의 차이점

메모리의 스택 영역은 함수의 호출과 관계되는 지역변수와 매개변수가 저장되는 공간입니다.

스택영역은 함수의 호출과 함께 할당되며, 함수의 호출이 완료되면 소멸합니다.

스택영역은 푸시(push) 동작으로 데이터를 저장, 팝(pop) 동작으로 데이터를 꺼냅니다.

이러한 스택은 후입선출 (LIFO, Last-In First-Out) 방식에 따라 동작하며, 가장 늦게 저장된 데이터가 가장 먼저 나오게 됩니다.

1) 매우 빠른 액세스

2) 변수를 명시적으로 할당 해제 할 필요 X

3) 공간은 CPU에 의해 효율적으로 관리, 메모리는 단편화되지 X

4) 지역변수만

5) 변수의 크기를 조정할 수 X

 

메모리의 힙(heap) 영역은 사용자가 직접 관리할 수 있는 메모리 영역입니다.

힙 영역은 사용자에 의해 메모리 공간이 동적으로 할당되고 해제됩니다.

1) 전역 적으로 액세스 할 수 X

2) 메모리 크기 제한 X

3) (상대적으로) 느린 액세스

4) Java new 명령어

 

용어정리

● 객체 : 객체 지향 프로그램의 대상, 생성된 인스턴스
● 클래스 : 객체를 프로그래밍 하기위해 코드로 정의해 놓은 상태
● 인스턴스 : new 키워드를 사용하여 클래스를 메모리에 생성한 상태
● 멤버 변수 : 클래스의 속성, 상태, 특성
● 메서드 : 멤버 변수를 이용하여 클래스의 기능을 구현한 함수
● 참조 변수 : 메모리에 생성된 인스턴스를 가리키는 변수
● 참조 값 : 생성된 인스턴스의 메모리 주소 값

반응형

'Java > Java 이론' 카테고리의 다른 글

[JAVA] 배운내용정리 (2)  (0) 2023.07.29
[JAVA] 배운내용정리 (1)  (0) 2023.07.29
[JAVA] 함수와 메서드  (0) 2023.07.28
[JAVA] 객채지향 언어  (0) 2023.07.28
[JAVA] break와 continue  (0) 2023.07.27
반응형
함수(function) 란?
  • 하나의 기능을 수행하는 일련의 코드
  • 구현된(정의된) 함수는 호출하여 사용하고 호출된 함수는 기능이 끝나면 제어가 반환됨
  • 함수로 구현된 하나의 기능은 여러 곳에서 동일한 방식으로 호출되어 사용될 수 있음.

함수는 이름, 매개 변수, 반환 값, 함수 몸체(body)로 구성된다.

함수 호출과 스택 메모리
  • 스택 : 함수가 호출될 때 지역 변수들이 사용하는 메모리
  • 함수의 수행이 끝나면 자동으로 반환되는 메모리

메서드(method)
  • 객체의 기능을 구현하기 위해 클래스 내부에 구현되는 함수
  • 멤버 함수(member function)이라고도 함
  • 메서드를 구현함으로써 객체으 기능이 구현됨
반응형

'Java > Java 이론' 카테고리의 다른 글

[JAVA] 배운내용정리 (1)  (0) 2023.07.29
[JAVA] 인스턴스 생성과 힙 메모리  (0) 2023.07.28
[JAVA] 객채지향 언어  (0) 2023.07.28
[JAVA] break와 continue  (0) 2023.07.27
[JAVA] do while 문  (0) 2023.07.27
반응형
Class (클래스)

클래스는 객체를 정의하는 설계도입니다.

현실 세상에서 존재하는 대부분의 것들을 클래스로 표현할 수 있습니다.

Object(객체)

객체란 클래스(설계도)를 통해 현실 세계에 뿌리내릴 수 있는 것을 말합니다.

아직 현실 세계에 존재하지는 않지만 존재할 가능성이 있는 것을 객체라고 합니다.

예를 들어 사자라는 클래스를 정의하였습니다. 사자는 이 세계에 존재할 수 있는 객체(Object) 입니다.

하지만 동물 클래스를 설계하고 이 세계에 뿌리내리게 하는 것은 불가능합니다.

왜냐하면 동물은 이 세계에 존재할 수 없는 것이기 때문입니다. 동물은 사자, 호랑이, 기린 같은 것들을 어우를 수 있는 포괄적인 개념입니다. 이런 것들은 실제 세상에 존재할 수 없기 때문에 객체가 될 수 없습니다. 동물 클래스는 추상적인 것입니다.

프로그래밍 세상에서 객체란 메모리(프로그래밍 세상)에 로드할 수 있는 것을 말하며 객체가 될 수 없다는 것은 메모리(프로그래밍 세상)에 로드할 수 없다는 뜻입니다.

 

객체 지향적 프로그래밍 설계란?
이름을 바로 잡는 일이다. 곧 대상 사물의 의미를 정확히 나타낼 수 있는 바른 이름(정명론)
"임금은 임금답고 신하는 신하답고 아버지는 아버지답고 자식은 자식답게[군군신신 부부자자] 되는 것입니다."
"학생은 학생 다워야 한다. "

합당한 이름을 붙이고 그 취지에 맞게 상태(변수)와 행위(메서드)를 정의하여 만들고 다른 객체들과 협력하거나 상호 작용하게 코드를 설계한다.

 

클래스는 객체의 설계도
  • 객체의 상태(속성)은 클래스의 멤버 변수(member variable)로 선언함
  • 학생클래스

  • 주문 클래스

  • 회원 클래스

클래스 코딩하기
  • 클래스는 대문자로 시작하는 것이 좋다.
  • java 파일 하나에 클래스는 여러 개가있을 수 있지만, public 클래스는 하나이고, public 클래스와 .java 파일의 이름은 동일함
  • camel notation 방식으로 명명
반응형

'Java > Java 이론' 카테고리의 다른 글

[JAVA] 인스턴스 생성과 힙 메모리  (0) 2023.07.28
[JAVA] 함수와 메서드  (0) 2023.07.28
[JAVA] break와 continue  (0) 2023.07.27
[JAVA] do while 문  (0) 2023.07.27
[JAVA] 반복문  (0) 2023.07.27
반응형
break

- 감싸고 있는 제어문의 블록을 빠져 나오는 기능

- 반복문에서 주로 조건문(if)와 같이 사용하여 조건에 해당되는 경우 반복 수행을 멈추고 반복문 외부로 수행이 이동

- 여러 반복문이 중첩되어 있는 경우엔 break 문이 포함되어 있는 반복문만 빠져 나옴

 

예제 1
1에서 10까지 출력하고 7의 배수인 경우 출력을 멈추는 프로그램

package ex_01;

 

public class Test20 {

 

public static void main(String[] args) {

 

for (int i = 1; i < 11; i++) {

System.out.println(i);

if (i % 7 == 0) {

break;

}

}

 

}

}

[출력값]

1

2

3

4

5

6

7

continue

- 반복문 내부에서 조건문 (if)와 같이 사용하며, 조건이 맞는 경우 (true 이면) 이후 반복문 블럭 내부의 다른 수행문들을 수행하지 않음

 

예제
1 부터 100까지 숫자를 출력하고 만약 3의 배수인 경우에는 출력하지 말고 개수를 출력하시오

package ch05;

 

public class ContinueMainTest {

public static void main(String[] args) {

 

// 1부터 100까지 화면에 결과를 출력하시오.

// 만약 3의 배수라면 화면에 값을 출력하지마시오.

int i;

int count = 0;

for (i = 1; i <= 100; i++) {

if (i % 3 == 0) {

count += 1;

continue;

} // end of if

System.out.println("i : " + i);

} // end of for

// 3의 배수의 개수를 출력해주세요

System.out.println("3의 배수 개수는 : "+count + " 입니다.");

 

 

} // end of main

 

} // end of class

[출력값]

i : 1

i : 2

i : 4

i : 5

(이하생략)

i : 98

i : 100

3의 배수 개수는 : 33 입니다.

 

반응형

'Java > Java 이론' 카테고리의 다른 글

[JAVA] 함수와 메서드  (0) 2023.07.28
[JAVA] 객채지향 언어  (0) 2023.07.28
[JAVA] do while 문  (0) 2023.07.27
[JAVA] 반복문  (0) 2023.07.27
[JAVA] if 조건문  (0) 2023.07.26
반응형
do-while 문

- 조건과 상관 없이 한번은 수행문을 수행한다.

- while 문은 조건을 먼저 체크하고 반복수행이 된다면, do-while 문은 조건과 상관없이 수행을 한 번 하고나서 조건을 체크한다.

do {
     수행문 1;
      .....
} while(조건식);
     수행문2;
     ....
예제 1 
1부터 10까지 더하여 그 결과를 출력해보자.

package ex_01;

 

public class Test20 {

 

public static void main(String[] args) {

 

int num = 1;

int sum = 0;

 

while (num <= 10) {

sum += num;

num++;

}

 

System.out.println("합계 " + sum);

System.out.println("num : " + num);

 

}

}

출력값

합계 55

num : 11

반응형

'Java > Java 이론' 카테고리의 다른 글

[JAVA] 객채지향 언어  (0) 2023.07.28
[JAVA] break와 continue  (0) 2023.07.27
[JAVA] 반복문  (0) 2023.07.27
[JAVA] if 조건문  (0) 2023.07.26
[JAVA] 산술연산자 (2)  (0) 2023.07.26
반응형
반복문 for

프로그램을 작성하다보면 똑같은 실행문을 반복적으로 실행해야 할 경우가 발생한다.

예를 들어 1에서 10까지 계산하는 프로그램을 작성한다고 생각해보자.

 

for ( 초기화식; 조건식; 증감식 ) {
실행문
....
}

예제

1부터 10까지 더한 값을 구해보자

int sum = 0;

      (1)초기화식; (2)조건식; (3)증감식;

for (int i = 1; i<=10; i++) {

sum += i;

}

System.out.println(sum); // (4)실행문

[출력값]

55

 

 

for문이 처음 실행될 때

1. (1)초기화식이 제일 먼저 실행된다.
2. (2)조건식을 평가해서 true면 (4)실행문을 실행시키고
3. false 이면 for 문을 종료하고 블록을 건너뛴다.
4. (2)조건식이 true가 되어 (4)실행문을 모두 실행하면 (3)증감식이 실행된다.
5. 그리고 다시 (2) 조건식을 평가하게된다.

 

 

 

While 문

for문이 정해진 횟수만큼 반복한다면 while 문은 조건식이 true일 경우에 계속해서 반복하고, false가 되면 반복을 멈추고

while 문을 종료한다.

while ( (1)조건식 ) {
          (2)실행문;
}

while문이 처음 실행될 때 조건식을 평가한다. 평가 결과가 true이면 실행문을 실행하고, 실행문이 모두 실행되면 다시 조건식으로 올라가서 조건식을 다시 평가한다. 조건식이 false라면 while 문을 종료한다.

 

while 문으로 1 부터 10까지 출력하는 프로그램을 작성해보자.

package ex_01;

 

public class Test19 {

 

public static void main(String[] args) {

int i = 1;

while (i <= 10) {

System.out.println(i + " ");

i++;

}

 

}

 

}

[출력값]

1

2

3

4

5

6

7

8

9

10

While 문을 활용하여 1부터 100까지의 합을 구해보자.

while 문 내에서 계속 누적되는 값을 갖는 sum 변수는 while 문 시작전에 미리 선언해놓아야 한다.

 

 

package ex_01;

 

public class WhileTest01 {

 

public static void main(String[] args) {

 

int sum = 0;

int i = 1;

while (i <= 100) {

sum += i;

i++;

}

System.out.println("1~" + (i - 1) + "합 :" + sum); // i가 101 값에서 종료되기 때문에 i-1 을 해주어야 한다.

}

 

}

[출력값]

1~100합 : 5050

 

정리
for문은 정해진 횟수만큼만 반복

while 문은 조건식이 true 일 경우 계속해서 반복 false가 되면 반복을 멈추고 while 문을 종료
반응형

'Java > Java 이론' 카테고리의 다른 글

[JAVA] break와 continue  (0) 2023.07.27
[JAVA] do while 문  (0) 2023.07.27
[JAVA] if 조건문  (0) 2023.07.26
[JAVA] 산술연산자 (2)  (0) 2023.07.26
[JAVA] 산술연산자 (1)  (0) 2023.07.26
반응형

조건문 이란?

● 주어진 조건에 따라 다른 실행이 이루어 지도록 구현

if문 문법

if (조건문) {

수행문; // 조건식이 '참'인 경우에(조건에 맞는 경우) 수행문이 수행됨

} // 조건식이 '참'이 아니면(조건에 맞지 않는 경우) 수행문이 수행되지 않음

if else 구문

// if else 구문

if (조건문) {

수행문1; // 조건식이 참일 경우 수행됨

} else {

수행문2; // 조건식이 거짓인 경우 수행됨

}

 

조건이 여러개 일때의 if 문

 

가령 점수를 입력받아 학점을 출력하는 프로그램을 만든다고 하면, 조건이 아래와 같다.

1) 90점 이상인 경우 A학점 출력
2) 80점 이상인 경우 B학점 출력
3) 70점 이상인 경우 C학점 출력
4) 70점 미만인 경우 F학점 출력

이처럼 조건이 여러개 일 경우 if else if else 구문을 사용한다.

 

package ch04;

 

import java.util.Scanner;

 

public class MainTest2 {

 

public static void main(String[] args) {

 

// 문제 1

Scanner sc = new Scanner(System.in); // 스캐너 도구 준비완료

 

// 스캐너를 사용하여 성적을 입력받아주세요.

System.out.println("성적을 입력해주세요!");

int score = sc.nextInt(); // R value -> 정수값을 키보드에서 입력 받는다.

// 2. 만약 90점 이상이면 A 출력

// 3. 만약 80점 이상이면 B 출력

// 4. 만약 70점 이상이면 C 출력

// 5. 만약 70점 이하면 F 출력

if (score >= 90) {

System.out.println("당신의 성적은 A학점 입니다.");

} else if (score >= 80) {

System.out.println("당신의 성적은 B학점 입니다.");

} else if (score >= 70) {

System.out.println("당신의 성적은 C학점 입니다.");

} else {

System.out.println("당신의 성적은 F학점 입니다.");

}

}

}

반응형

'Java > Java 이론' 카테고리의 다른 글

[JAVA] do while 문  (0) 2023.07.27
[JAVA] 반복문  (0) 2023.07.27
[JAVA] 산술연산자 (2)  (0) 2023.07.26
[JAVA] 산술연산자 (1)  (0) 2023.07.26
[JAVA] 캐멀(Camel) 스타일  (0) 2023.07.25
반응형

관계연산자

- 이항연산자

- 연산의 결과가 true(참), false(거짓)으로 반환 됨, 비교연산자 라고도 한다.

- 조건문, 반복문의 조건식으로 많이 사용 됨

논리연산자

- 관계연산자와 혼합하여 많이 사용됨

- 연산의 결과가 true(참), false(거짓)으로 반환됨

논리 연산에서 모든 항이 실행되지 않는 경우(short circuit evaluation)

● 논리 곱(&&)은 두 항의 결과가 모두 true일 때만 결과가 true

-- > 앞의 항의 결과가 false이면 뒤 항의 결과를 평가하지 않음

● 논리 합(||)은 두 항의 결과가 모두 false일 때만 결과가 false

-- > 앞의 항의 결과가 true이면 뒤 항의 결과를 평가하지 않음

package ch03;

 

public class MainTest7 {

 

public static void main(String[] args) {

// 핵심정리

// 논리 연산자 ( &&, ||, ! )

// 관계 연산자와 혼합하여 많이 사용한다.

// 연산의 결과는 true, false로 반환된다.

 

int num1 = 10;

int num2 = 20;

// 논리 곱 연산자(&&)는 모든 결과 값이 참이어야 참이 나온다. true

// 하나라도 거짓이 나오면 무조건 거짓이 나온다. false

// 논리곱 연산

boolean flag1 = (num1 > 0) && (num2 > 0); // 앞 연산이 T, 뒤 연산이 T 이므로 논리 곱 출력 값도 True!

System.out.println(flag1);

boolean flag2 = (num1 > 0) && (num2 < 0); // 앞 연산이 T, 뒤 연산이 F 이므로 논리 곱 출력 값은 False!

System.out.println(flag2);

boolean flag3 = (num1 < 0) && (num2 < 0); // 앞 연산이 F, 뒤 연산이 F 이므로 논리 곱 출력 값은 False!

System.out.println(flag3);

 

// 결론

// 논리 곱에서 하나라도 거짓이 있으면 연산의 결과는 false이다.

 

System.out.println("============================");

 

// 논리 합 연산(||)

// 논리 합에서는 하나라도 참이 있으면 연산의 결과는 True이다.

flag1 = (num1 < 0) || (num2 > 0); // 앞 연산은 F, 뒤 연산은 T 논리 합은 하나라도 참이면 참 값이 출력되므로 True

System.out.println(flag1);

// flag2 = T || T -> T

// flag3 = T || F -> T

// flag4 = F || F -> F

flag1 = (num1 > 0) || (num2 > 0); // T || T -> T

System.out.println(flag1);

flag1 = (num1 < 0) || (num2 > 0); // F || T -> T

System.out.println(flag1);

flag1 = (num1 < 0) || (num2 < 0); // F || F -> F

System.out.println(flag1);

}

 

}

package ch03;

 

public class MainTest7_1 {

 

public static void main(String[] args) {

 

// 논리 연산자(논리곱, 논리합)

 

int num1 = 5;

int i = 0;

 

boolean value = ( (num1 = 1 +10 ) < 10 ) && ( ( i = i + 2 ) < 10 );

System.out.println(value); // 논리 곱 기준 앞 연산자가 false 값이므로 뒤 연산자는 확인할 필요없이 false가 출력됨

System.out.println(num1);

System.out.println(i); // 앞 연산이 false 이므로 뒤 연산자를 확인할 필요가 없어서 빠른 평가에 의해 2가 더해지지 않고 0으로 바로 출력

 

// 논리 합

boolean value2 = ((num1 = num1 + 1) > 0) || ((i = 100) < 2000 );

System.out.println(value2);

System.out.println(num1);

System.out.println(i);

 

// 부정 연산자 (!)

// value2 = true

System.out.println(!value2); // value2 값 참을 부정하므로 false

System.out.println(value2);

 

} // end of main

 

} // end of class

조건 연산자

- 삼항연산자

- 조건식의 결과가 true(참)인 경우와 false(거짓)인 경우에 따라 다른 결과가 수행됨

- if (조건문)을 간단히 표현할 때 사용할 수 있음

int num1 = (5 > 3) ? 10 : 20; // 조건식이 참이면 10, 거짓이면 20을 num1에 입력

System.out.println(num1);

// 변수의 선언과 초기화

int num2 = (5 < 3) ? 10 : 20;

System.out.println(num2); // 조건식이 거짓이므로 20출력

System.out.println("=================");

System.out.println((5 < 3) ? 10 : 20);

연산자 우선순위

● 가장 높은 순위 연산자는 () [] .

● 가장 낮은 순위 연산자 =

반응형

'Java > Java 이론' 카테고리의 다른 글

[JAVA] 반복문  (0) 2023.07.27
[JAVA] if 조건문  (0) 2023.07.26
[JAVA] 산술연산자 (1)  (0) 2023.07.26
[JAVA] 캐멀(Camel) 스타일  (0) 2023.07.25
[JAVA] 대입연산자와 부호연산자  (0) 2023.07.25
반응형

사칙연산자

사칙연산자의 종류는 5종류가 있으며 아래와 같다.

연산자 기능 연산 예
+ 두 항을 더한다 5 + 3
- 앞에 있는 항에서 뒤에 있는 항을 뺀다 5 - 3
* 두 항을 곱한다 5 * 3
/ 앞에 있는 항에서 뒤에 있는 항을 나누어 몫을 구한다 5 / 3
% 앞에 있는 항에서 뒤에 있는 항을 나누어 나머지를 구한다 5 & 3

사칙연산 실습예

package ch03;

 

public class MainTest3 {

 

// 메인함수 - 코드의 시작점 : 메인 쓰레드(일을 하는 작업자)

public static void main(String[] args) {

 

// 산술 연산자 연습

int number1 = 5 + 3;

int number2 = 5 - 3;

int number3 = 5 * 3;

 

int number4 = 5 / 4;

 

int number5 = 5 % 3;

 

System.out.println(number1);

System.out.println(number2);

System.out.println(number3);

System.out.println(number4);

System.out.println(number5);

 

System.out.println("-----------------------------");

 

// 문제

// 1. (12 + 3) / 3 값을 화면에 출력하시오

int number6 = (12 + 3) / 3;

System.out.println(number6);

// 2. (25 % 2) 값을 화면에 출력하시오.

int number7 = 25 % 2;

System.out.println(number7);

 

int number10 = (int) (5.0 / 4.0);

System.out.println("===================");

System.out.println(number10);

 

} // end of main

 

} // end of class

[출력값]

8

2

15

1

2

-----------------------------

5

1

===================

1

복합 대입 연산자

대입 연산자와 다른 연산자가 함께 쓰인다.

연산자 기능 연산 예
+= 두 항의 값을 더해서 왼쪽 항에 대입 num1 += 2;
num1 = num1 + 2; 와 같음
-= 왼쪽 항에서 오른쪽 항을 빼서 그 값을 왼쪽 항에 대입 num1 -= 2;
num1 = num1 - 2; 와 같음
*= 두 항의 값을 곱해서 왼쪽 항에 대입 num1 *= 2;
num1 = num1 * 2; 와 같음
/= 왼쪽 항을 오른쪽 항으로 나누어 그 몫을 왼쪽 항에 대입 num1 /= 2;
num1 = num1 / 2; 와 같음
%= 왼쪽 항을 오른쪽 항으로 나누어 그 나머지를 왼쪽 항에 대입 num1 %= 2;
num1 = num1 % 2; 와 같음

복합 대입 연산자 실습예

package ch03;

 

public class MainTest4 {

 

public static void main(String[] args) {

 

// 복합 대입 연산자

// 대입 연산자와 다른 연산자랑 함께 쓰인다.

 

int num1 = 1;

// num1 = num1 +10;

num1 += 10;

System.out.println(num1);

 

int num2 = 1;

// num2 = num2 + 100;

num2 += 100; // 위 식을 간소화 한것.

System.out.println(num2);

 

int num3 = 1;

// num3 -= 10;

// 위 식을 반대로 풀어서 코드작성

num3 = num3 - 10;

System.out.println(num3);

 

// num1 = num1 * 2;

// 위 식을 복합연산자로 변경하면

num1 *= 2;

System.out.println(num1);

 

// num2 = num2 / 2;

// 위 식을 복합연산자로 변경

num2 /= 2;

System.out.println(num2);

 

// num2 = num2 % 2;

// 위 식을 복합연산자로 변경

num2 %= 2;

System.out.println(num2);

 

} // end of main

 

} // end of class

증감, 감소 연산자

  • 단항 연산자
  • 변수의 값을 1 더하거나 1 뺄때 사용
  • 연산자의 항의 앞에 있는가 뒤에 있는가에 따라 연산 시점의 결과가 달라진다.
  • 문장(statement)의 끝(;)을 기준으로 연산 시점을 생각해야함
연산자 기능 연산 예 (연산자가 앞/뒤에 오는 것에 따라 결과가 달라져요!)
++ 항의 값에 1을 더한다 val = ++num; // 먼저 num 값이 1 증가 후 val 변수에 대입
val = num++; // val 변수에 num 값 대입 후 num 값 1증가
-- 항의 값에 1을 뺀다 val = --num; // 먼저 num 값이 1 감소 후 val 변수에 대입
val = num--; // val 변수에 num 값 대입 후 num 값 1감소

증감, 감소 연산자 예제

package ch03;

 

public class MainTest5_2 {

 

public static void main(String[] args) {

 

// 증감, 감소 연산자 - 모양 : 변수 기준으로 앞에 사용, 뒤에 사용 가능하다. (주의 점은 오직 1만 더하거나 빼는 것)

 

// 1. 증가 연산자가 뒤에 올 경우

int num1 = 10;

num1++;

 

// 응용

int num2 = 10;

int num3;

 

num3 = num2++;

System.out.println(num3);

System.out.println(num2);

 

System.out.println("=================");

 

// 2. 증가 연산자가 앞에 올 경우

 

int num20 = 100;

int num21;

 

num21 = ++num20;

System.out.println(num20);

 

} // end of main

 

} // end of class

package ch03;

 

public class MainTest5_3 {

 

public static void main(String[] args) {

 

// 증감, 감소 연산자 - 모양 : 변수 기준으로 앞에 사용, 뒤에 사용 가능하다. (주의 점은 오직 1만 더하거나 빼는 것)

 

// 1. 감소 연산자가 뒤에 올 경우

int num1 = 10;

num1--;

 

// 응용

int num2 = 10;

int num3;

 

num3 = num2--;

System.out.println(num3);

System.out.println(num2);

 

System.out.println("=================");

 

// 2. 감소 연산자가 앞에 올 경우

 

int num20 = 100;

int num21;

 

num21 = --num20;

System.out.println(num20);

 

} // end of main

 

} // end of class

반응형

'Java > Java 이론' 카테고리의 다른 글

[JAVA] if 조건문  (0) 2023.07.26
[JAVA] 산술연산자 (2)  (0) 2023.07.26
[JAVA] 캐멀(Camel) 스타일  (0) 2023.07.25
[JAVA] 대입연산자와 부호연산자  (0) 2023.07.25
[JAVA] 형변환  (0) 2023.07.25
반응형
캐멀(camel) 스타일

코드를 작성할 때 여러 단어를 혼합하여 명명하는 경우, 낙타의 등처럼 대소문자가 섞여있도록 작성하는 스타일을 말한다.

자바 소스 파일명과 변수명을 작성할 때 관례적으로 사용.

 

예를 들면,

 

자바 소스 파일명(클래스명)은 대문자로 시작하는 것이 관례!

 

Weekend.java

MathGrade.java

 

변수명은 소문자로 시작하는 것이 관례!

score

koreanScore

 


요약

 

캐멀스타일 

낙타의 등 처럼 대소문자가 섞여있도록 작성하는 스타일!

클래스명은 대문자로 시작, 변수명은 소문자로 시작하는 것이 관례!

반응형

'Java > Java 이론' 카테고리의 다른 글

[JAVA] 산술연산자 (2)  (0) 2023.07.26
[JAVA] 산술연산자 (1)  (0) 2023.07.26
[JAVA] 대입연산자와 부호연산자  (0) 2023.07.25
[JAVA] 형변환  (0) 2023.07.25
[JAVA] 변수와 상수  (0) 2023.07.25
반응형

항과 연산자

1. 항(Operand) : 연산에 사용되는 값

2. 연산자(Operator) : 항을 이용하여 연산하는 기호

 

대입 연산자(Assignment Operator)

- 변수에 다른 변수나 값을 대입하는 연산자

- 이항 연산자 중 우선순위가 가장 낮은 연산자들

- 왼쪽 변수 = 오른쪽 변수(변수 또는 식, 값)

 

package ch03;

 

public class MainTest1 {

 

public static void main(String[] args) {

 

char myA = 'A';

char youerA = 'a';

// 변수를 활용해서 연산을 한다고 실제 변수안에 들어가 있는 값이 변경되는 것은 아니다.

System.out.println((int)myA);

System.out.println((short)myA);

System.out.println("=====================");

System.out.println(myA);

System.out.println("=====================");

// 즉, 값을 변경 하려면 대입 연산자를 활용할 수 있다.

myA = 'B';

System.out.println(myA);

 

// 대입 연산자의 우선 순위는 가장 낮다.

// 연산의 방향은 반드시 오른쪽에서 왼쪽 방향( <------- )으로 간다고 생각.

} // end of main

} // end of class

 

부호 연산자

- 단항 연산자

- 변수의 부호를 유지 하거나(+) 바꿈(-)

- 실제 변수의 부호를 변경하려면 대입 연사자를 사용해야 함

연산식 설명
+ 피연산자 피연산자의 부호 유지
- 피연산자 피연산자의 부호 변경

package ch03;

 

public class MainTest2 {

 

public static void main(String[] args) {

 

// 부호 연산자 ( +, - )

// 단항 연산자이다.

int number = 10;

// 부호 연산자는 메모리 공간에 접근해서 값을 변경하는 것은 아니다.

System.out.println(-number);

System.out.println(number);

// 실제 값을 변경하려면 대입연산자를 사용하여 변경한다.

 

// 문제

// number 변수에 접근해서 현재 값 양수 10을 -10으로 변경코드를 작성하시오.

// 그 값을 출력하면?

// 단 R value 리터럴 값 대신 변수를 사용하시오.

number = -number;

System.out.println(number);

 

} // end of main

 

} // end of class

 

반응형

'Java > Java 이론' 카테고리의 다른 글

[JAVA] 산술연산자 (1)  (0) 2023.07.26
[JAVA] 캐멀(Camel) 스타일  (0) 2023.07.25
[JAVA] 형변환  (0) 2023.07.25
[JAVA] 변수와 상수  (0) 2023.07.25
[JAVA] 변수형과 자료형 - 2  (0) 2023.07.25

+ Recent posts