소개
이 랩에서는 Java 프로그래밍의 기본 개념인 변수와 연산자를 탐구합니다. 다양한 유형의 변수를 선언하는 방법, 여러 기본 데이터 유형을 이해하고, 다양한 연산자와 표현식을 사용하는 방법을 배우게 됩니다. 이 실습 경험은 Java 프로그래밍 초보자에게 탄탄한 기초를 제공할 것입니다.
이 랩에서는 Java 프로그래밍의 기본 개념인 변수와 연산자를 탐구합니다. 다양한 유형의 변수를 선언하는 방법, 여러 기본 데이터 유형을 이해하고, 다양한 연산자와 표현식을 사용하는 방법을 배우게 됩니다. 이 실습 경험은 Java 프로그래밍 초보자에게 탄탄한 기초를 제공할 것입니다.
변수는 프로그래밍에서 값을 저장하는 명명된 저장 위치입니다. Java 는 각기 특정 유형의 값을 저장하도록 설계된 여러 기본 데이터 유형을 제공합니다. 실용적인 예제를 통해 이러한 개념을 살펴보겠습니다.
먼저, 변수 선언 및 사용법을 시연하기 위해 Java 파일을 만들 것입니다. WebIDE (VS Code 와 유사) 에서 VariableDemo.java라는 새 파일을 만듭니다. 파일 탐색기 창에서 마우스 오른쪽 버튼을 클릭하고 "New File"을 선택한 다음 파일 이름을 입력하여 이 작업을 수행할 수 있습니다.
다음 코드를 복사하여 파일에 붙여넣습니다.
public class VariableDemo {
public static void main(String[] args) {
// Declaring and initializing variables of different types
byte smallNumber = 127;
short mediumNumber = 32000;
int largeNumber = 2000000000;
long veryLargeNumber = 9000000000000000000L;
float decimalNumber = 3.14f;
double preciseDecimal = 3.14159265359;
char singleCharacter = 'A';
boolean isJavaFun = true;
// Printing the values
System.out.println("byte: " + smallNumber);
System.out.println("short: " + mediumNumber);
System.out.println("int: " + largeNumber);
System.out.println("long: " + veryLargeNumber);
System.out.println("float: " + decimalNumber);
System.out.println("double: " + preciseDecimal);
System.out.println("char: " + singleCharacter);
System.out.println("boolean: " + isJavaFun);
}
}
이 코드를 더 잘 이해하기 위해 분석해 보겠습니다.
VariableDemo라는 클래스를 선언하는 것으로 시작합니다. Java 에서 모든 프로그램은 최소한 하나의 클래스를 가져야 합니다.
클래스 내부에 main 메서드가 있습니다. 이것은 Java 프로그램의 진입점이며, 실행이 시작되는 곳입니다.
그런 다음 다양한 기본 데이터 유형의 변수를 선언하고 초기화합니다.
byte: 매우 작은 정수 값 (-128 ~ 127) 에 사용됩니다.short: 작은 정수 값 (-32,768 ~ 32,767) 에 사용됩니다.int: 정수 값 (약 -20 억 ~ 20 억) 에 사용됩니다.long: 매우 큰 정수 값 (약 -900 경 ~ 900 경) 에 사용됩니다.float: 소수점 숫자 (단정밀도) 에 사용됩니다.double: 더 높은 정밀도의 소수점 숫자에 사용됩니다.char: 단일 문자에 사용됩니다.boolean: true/false 값에 사용됩니다.long 값에 대한 L 접미사와 float 값에 대한 f 접미사를 확인하십시오. Java 에 이러한 리터럴을 각각 long 및 float로 처리하도록 지시하는 데 필요합니다.
마지막으로, System.out.println()을 사용하여 각 변수를 출력합니다. 여기서 + 연산자는 문자열 연결에 사용되어 설명 문자열을 변수의 값과 결합합니다.
이제 이 프로그램을 실행해 보겠습니다. WebIDE 에서 터미널 창을 열고 다음 명령을 실행합니다.
javac VariableDemo.java
java VariableDemo
콘솔 창에 다음과 유사한 출력이 표시됩니다.
byte: 127
short: 32000
int: 2000000000
long: 9000000000000000000
float: 3.14
double: 3.14159265359
char: A
boolean: true
이 출력은 우리가 선언하고 초기화한 각 변수의 값을 보여줍니다. 잠시 시간을 내어 각 출력된 값이 코드에서 할당한 값과 일치하는지 확인하십시오.
Java 의 산술 연산자를 사용하면 수학적 계산을 수행할 수 있습니다. 이러한 연산자를 시연하기 위해 새 파일을 만들어 보겠습니다.
WebIDE 에서 ArithmeticDemo.java라는 새 파일을 만듭니다. 다음 코드를 복사하여 붙여넣습니다.
public class ArithmeticDemo {
public static void main(String[] args) {
int a = 10;
int b = 3;
System.out.println("Addition: " + (a + b));
System.out.println("Subtraction: " + (a - b));
System.out.println("Multiplication: " + (a * b));
System.out.println("Division: " + (a / b));
System.out.println("Modulus: " + (a % b));
// Increment and decrement
int c = 5;
System.out.println("c before increment: " + c);
System.out.println("c after increment: " + (++c));
System.out.println("c after decrement: " + (--c));
}
}
이 코드를 분석해 보겠습니다.
두 개의 정수 변수 a와 b를 선언하고 각각 10 과 3 의 값을 할당합니다.
그런 다음 다양한 산술 연산을 수행합니다.
+): 두 숫자를 더합니다.-): 왼쪽 피연산자에서 오른쪽 피연산자를 뺍니다.*): 두 숫자를 곱합니다./): 왼쪽 피연산자를 오른쪽 피연산자로 나눕니다.%): 왼쪽 피연산자를 오른쪽 피연산자로 나눈 나머지를 반환합니다.증가 (++) 및 감소 (--) 연산자도 시연합니다.
++c는 표현식에서 사용되기 전에 c의 값을 1 증가시킵니다.--c는 표현식에서 사용되기 전에 c의 값을 1 감소시킵니다.WebIDE 에서 이 프로그램을 실행합니다. 다음과 유사한 출력이 표시됩니다.
Addition: 13
Subtraction: 7
Multiplication: 30
Division: 3
Modulus: 1
c before increment: 5
c after increment: 6
c after decrement: 5
정수를 나눌 때 (a / b) Java 는 정수 나눗셈을 수행하여 소수 부분을 잘라냅니다. 이것이 10 / 3이 3.33333...이 아닌 3이 되는 이유입니다.
또한 증가 및 감소 연산자가 c의 값에 어떻게 영향을 미치는지 관찰하십시오. 이러한 연산자를 이해하는 것은 많은 프로그래밍 작업, 특히 루프를 사용할 때 매우 중요합니다.
Java 의 비트 연산자를 사용하면 정수 유형의 개별 비트를 조작할 수 있습니다. 이러한 연산자는 일상적인 프로그래밍에서는 덜 일반적으로 사용되지만, 바이너리 데이터 작업 또는 특정 알고리즘 최적화와 같은 특정 시나리오에서는 매우 중요합니다.
WebIDE 에서 BitwiseDemo.java라는 새 파일을 만듭니다. 다음 코드를 복사하여 붙여넣습니다.
public class BitwiseDemo {
public static void main(String[] args) {
int a = 60; // 60 = 0011 1100 in binary
int b = 13; // 13 = 0000 1101 in binary
System.out.println("a & b = " + (a & b)); // AND
System.out.println("a | b = " + (a | b)); // OR
System.out.println("a ^ b = " + (a ^ b)); // XOR
System.out.println("~a = " + (~a)); // NOT
System.out.println("a << 2 = " + (a << 2)); // Left Shift
System.out.println("a >> 2 = " + (a >> 2)); // Right Shift
}
}
이러한 비트 연산을 분석해 보겠습니다.
AND (&): 두 비트가 모두 1 이면 1 을 반환하고, 그렇지 않으면 0 을 반환합니다.
60 & 13 = 0011 1100 & 0000 1101 = 0000 1100 (10 진수 12)OR (|): 적어도 하나의 비트가 1 이면 1 을 반환하고, 그렇지 않으면 0 을 반환합니다.
60 | 13 = 0011 1100 | 0000 1101 = 0011 1101 (10 진수 61)XOR (^): 비트가 다르면 1 을 반환하고, 같으면 0 을 반환합니다.
60 ^ 13 = 0011 1100 ^ 0000 1101 = 0011 0001 (10 진수 49)NOT (~): 모든 비트를 반전시킵니다.
~60 = ~0011 1100 = 1100 0011 (10 진수 -61, 2 의 보수 표현 때문)Left Shift (<<): 모든 비트를 지정된 위치 수만큼 왼쪽으로 이동합니다.
60 << 2 = 0011 1100 << 2 = 1111 0000 (10 진수 240)Right Shift (>>): 모든 비트를 지정된 위치 수만큼 오른쪽으로 이동합니다.
60 >> 2 = 0011 1100 >> 2 = 0000 1111 (10 진수 15)WebIDE 에서 이 프로그램을 실행합니다. 다음과 유사한 출력이 표시됩니다.
a & b = 12
a | b = 61
a ^ b = 49
~a = -61
a << 2 = 240
a >> 2 = 15
비트 연산자를 이해하는 것은 처음에는 어려울 수 있지만, 특히 로우 레벨 프로그래밍을 하거나 성능을 위해 코드를 최적화할 때 특정 유형의 연산에 매우 강력합니다.
Java 의 논리 연산자는 부울 값에 대한 논리 연산을 수행하는 데 사용됩니다. 이러한 연산자는 프로그램에서 복잡한 조건을 생성하는 데 필수적입니다.
WebIDE 에서 LogicalDemo.java라는 새 파일을 만듭니다. 다음 코드를 복사하여 붙여넣습니다.
public class LogicalDemo {
public static void main(String[] args) {
boolean a = true;
boolean b = false;
System.out.println("a && b = " + (a && b)); // Logical AND
System.out.println("a || b = " + (a || b)); // Logical OR
System.out.println("!a = " + (!a)); // Logical NOT
// Short-circuit evaluation
int x = 5;
int y = 10;
System.out.println("x < 0 && y++ > 5 = " + (x < 0 && y++ > 5));
System.out.println("y after evaluation: " + y);
}
}
이러한 논리 연산을 분석해 보겠습니다.
AND (&&): 두 피연산자가 모두 true이면 true를 반환하고, 그렇지 않으면 false를 반환합니다.
true && false = falseOR (||): 적어도 하나의 피연산자가 true이면 true를 반환하고, 그렇지 않으면 false를 반환합니다.
true || false = trueNOT (!): 부울 값을 반전시킵니다.
!true = false단락 평가 (Short-circuit evaluation): x < 0 && y++ > 5 표현식에서 Java 는 먼저 x < 0을 평가합니다. 이것이 false이므로 전체 결과가 무엇이든 false여야 하므로 두 번째 부분 (y++ > 5) 을 평가하지 않습니다. 이것이 평가 후 y가 10 으로 유지되는 이유입니다.
WebIDE 에서 이 프로그램을 실행합니다. 다음과 유사한 출력이 표시됩니다.
a && b = false
a || b = true
!a = false
x < 0 && y++ > 5 = false
y after evaluation: 10
논리 연산을 이해하는 것은 if 문이나 while 루프와 같이 프로그램에서 조건을 생성하는 데 매우 중요합니다. && 및 ||의 단락 동작은 특정 상황에서 코드를 최적화하는 데에도 사용할 수 있습니다.
이제 다양한 유형의 연산자를 살펴보았으므로 여러 유형의 연산자를 사용하는 간단한 계산기 프로그램을 만들어 보겠습니다. 이는 우리가 배운 내용을 강화하고 이러한 개념을 실제 시나리오에 적용하는 방법을 보여주는 데 도움이 될 것입니다.
WebIDE 에서 SimpleCalculator.java라는 새 파일을 만듭니다. 다음 코드를 복사하여 붙여넣습니다.
public class SimpleCalculator {
public static void main(String[] args) {
int a = 10;
int b = 5;
// Arithmetic operations
System.out.println("Arithmetic Operations:");
System.out.println("a + b = " + (a + b));
System.out.println("a - b = " + (a - b));
System.out.println("a * b = " + (a * b));
System.out.println("a / b = " + (a / b));
System.out.println("a % b = " + (a % b));
// Bitwise operations
System.out.println("\nBitwise Operations:");
System.out.println("a & b = " + (a & b));
System.out.println("a | b = " + (a | b));
System.out.println("a ^ b = " + (a ^ b));
System.out.println("~a = " + (~a));
// Logical operations
boolean x = a > b;
boolean y = a < b;
System.out.println("\nLogical Operations:");
System.out.println("x && y = " + (x && y));
System.out.println("x || y = " + (x || y));
System.out.println("!x = " + (!x));
// Combining operations
System.out.println("\nCombined Operations:");
System.out.println("(a + b) * 2 = " + ((a + b) * 2));
System.out.println("(a > b) && (a % b == 0) = " + ((a > b) && (a % b == 0)));
}
}
이 코드를 분석하고 각 부분을 설명해 보겠습니다.
산술 연산 (Arithmetic Operations):
a와 b에 대한 기본적인 산술 연산 (덧셈, 뺄셈, 곱셈, 나눗셈 및 나머지) 을 수행합니다.비트 연산 (Bitwise Operations):
a와 b에 대해 비트 AND, OR, XOR 및 NOT 연산을 수행합니다.논리 연산 (Logical Operations):
a와 b 간의 비교를 기반으로 두 개의 부울 변수 x와 y를 만듭니다.결합된 연산 (Combined Operations):
(a + b) * 2는 연산 순서를 제어하기 위해 괄호를 사용하는 것을 보여줍니다.(a > b) && (a % b == 0)은 비교, 나머지 연산 및 논리 AND 를 결합합니다.WebIDE 에서 이 프로그램을 실행합니다. 다음과 유사한 출력이 표시됩니다.
Arithmetic Operations:
a + b = 15
a - b = 5
a * b = 50
a / b = 2
a % b = 0
Bitwise Operations:
a & b = 0
a | b = 15
a ^ b = 15
~a = -11
Logical Operations:
x && y = false
x || y = true
!x = false
Combined Operations:
(a + b) * 2 = 30
(a > b) && (a % b == 0) = true
이 출력은 각 유형의 연산자가 어떻게 작동하는지 보여줍니다.
a와 b의 이진 표현을 조작한 결과를 보여줍니다.이러한 연산자를 결합하는 방법을 이해하는 것은 보다 복잡하고 효율적인 Java 프로그램을 작성하는 데 매우 중요합니다. Java 여정을 진행하면서 이러한 연산자를 다양한 조합으로 사용하여 점점 더 복잡한 문제를 해결하게 될 것입니다.
이 랩에서는 Java 프로그래밍의 기본 개념인 변수와 연산자를 탐구했습니다. int, boolean, char와 같은 기본 데이터 유형을 포함하여 다양한 유형의 변수를 선언하고 사용하는 방법을 배웠습니다. 그런 다음 Java 의 다양한 연산자를 자세히 살펴보았습니다.
실용적인 예제를 통해 이러한 연산자가 개별적으로 그리고 조합하여 광범위한 연산을 수행하는 방법을 살펴보았습니다. 단일 애플리케이션에서 여러 유형의 연산자를 사용하는 것을 보여주는 간단한 계산기 프로그램을 만들었습니다.