소개
이 랩에서는 Java 에서 배열이 양수만 포함하는지 확인하는 방법을 배우게 됩니다. 배열을 반복하고 각 요소를 개별적으로 확인하는 루프를 사용하는 기본적인 방법부터 시작하여 다양한 접근 방식을 탐구할 것입니다.
기본 루프 방법 다음에, 컬렉션을 처리하는 더 현대적이고 종종 더 간결한 방법인 Java Stream API 를 사용하는 방법을 자세히 살펴보겠습니다. 마지막으로, 배열이 양수 값만 포함하는지 여부를 결정하는 맥락에서 0 과 음수를 처리하는 방법에 대해 논의할 것입니다. 이 랩은 Java 에서 배열 조작 및 조건부 로직에 대한 실질적인 기술을 제공할 것입니다.
양수 확인을 위한 배열 루프
이 단계에서는 Java 에서 숫자 배열을 반복하고 각 숫자가 양수인지 확인하는 방법을 배우겠습니다. 이는 프로그래밍의 기본 연산으로, 데이터 컬렉션을 처리할 수 있게 해줍니다.
먼저, ~/project 디렉토리에 PositiveCheck.java라는 새 Java 파일을 생성해 보겠습니다. 왼쪽의 파일 탐색기에서 마우스 오른쪽 버튼을 클릭하고 "새 파일"을 선택한 다음 PositiveCheck.java를 입력하여 이 작업을 수행할 수 있습니다.
이제 편집기에서 PositiveCheck.java 파일을 열고 다음 코드를 추가합니다.
public class PositiveCheck {
public static void main(String[] args) {
// Define an array of integers
int[] numbers = {10, -5, 20, 0, 15, -8};
// Loop through the array
for (int i = 0; i < numbers.length; i++) {
// Get the current number
int currentNumber = numbers[i];
// Check if the number is positive
if (currentNumber > 0) {
System.out.println(currentNumber + " is a positive number.");
}
}
}
}
이 코드를 분석해 보겠습니다.
public class PositiveCheck: 파일 이름과 일치하는 클래스를 선언합니다.public static void main(String[] args): 프로그램 실행이 시작되는 main 메서드입니다.int[] numbers = {10, -5, 20, 0, 15, -8};:numbers라는 정수 배열을 선언하고 일부 값으로 초기화합니다. 배열은 동일한 데이터 유형의 요소 모음입니다.for (int i = 0; i < numbers.length; i++):for루프입니다. 여러 번 코드 블록을 반복할 수 있게 해주는 제어 구조입니다.int i = 0: 카운터 변수i를 0 으로 초기화합니다.i < numbers.length: 각 반복 전에 확인되는 조건입니다.i가numbers배열의 길이보다 작은 동안 루프가 계속됩니다.numbers.length는 배열의 요소 수를 제공합니다.i++: 각 반복 후 카운터i를 1 씩 증가시킵니다.
int currentNumber = numbers[i];: 루프 내에서 이 줄은numbers배열에서 현재 인덱스i의 요소에 접근하여currentNumber라는 변수에 저장합니다. 배열 인덱스는 0 부터 시작합니다.if (currentNumber > 0):if문입니다.currentNumber가 0 보다 큰지 확인합니다.System.out.println(currentNumber + " is a positive number.");:if조건이 true(즉, 숫자가 양수임) 인 경우에만 이 줄이 실행됩니다. 양수 다음에 텍스트 " is a positive number."를 출력합니다.
PositiveCheck.java 파일을 저장합니다 (Ctrl+S 또는 Cmd+S).
이제 터미널에서 이 프로그램을 컴파일하고 실행해 보겠습니다. ~/project 디렉토리에 있는지 확인하십시오.
코드를 컴파일합니다.
javac PositiveCheck.java
오류가 없으면 PositiveCheck.class 파일이 생성됩니다.
이제 컴파일된 코드를 실행합니다.
java PositiveCheck
배열에서 양수만 표시하는 출력을 볼 수 있습니다.
10 is a positive number.
20 is a positive number.
15 is a positive number.
이는 for 루프를 사용하여 배열을 반복하고 각 요소에 조건을 적용하는 방법을 보여줍니다. 다음 단계에서는 Java 의 Stream API 를 사용하여 유사한 결과를 얻는 더 현대적인 방법을 탐구할 것입니다.
Stream API 를 사용하여 양수 확인
이 단계에서는 Java 에서 컬렉션을 처리하는 더 현대적이고 종종 더 간결한 방법인 Stream API 를 탐구할 것입니다. Java 8 에 도입된 Stream 은 데이터 컬렉션에 대한 필터링, 매핑 및 축소와 같은 작업을 수행하는 강력한 방법을 제공합니다.
이전 예제를 수정하여 Stream 을 사용하여 배열에서 양수를 찾을 것입니다.
편집기에서 PositiveCheck.java 파일을 다시 엽니다. 기존 코드를 다음으로 바꿉니다.
import java.util.Arrays;
public class PositiveCheck {
public static void main(String[] args) {
// Define an array of integers
int[] numbers = {10, -5, 20, 0, 15, -8};
// Use Stream API to filter and print positive numbers
Arrays.stream(numbers) // 1. Create a stream from the array
.filter(number -> number > 0) // 2. Filter for positive numbers
.forEach(number -> System.out.println(number + " is a positive number (Stream).")); // 3. Process each positive number
}
}
이 코드의 새로운 부분을 살펴보겠습니다.
import java.util.Arrays;:stream()메서드를 사용하려면Arrays클래스를 가져와야 합니다.Arrays.stream(numbers): 이 줄은int배열을IntStream으로 변환합니다. 스트림은 자체 데이터 구조가 아니라 처리할 수 있는 요소 시퀀스입니다..filter(number -> number > 0): 이는 스트림에 대한 중간 연산입니다.filter()메서드는Predicate(true 또는 false 를 반환하는 함수) 를 사용하고 술어가 true 인 요소만 유지합니다. 여기서number -> number > 0은 함수를 작성하는 간결한 방법인 람다 표현식입니다. 스트림의 각number가 0 보다 큰지 확인합니다..forEach(number -> System.out.println(number + " is a positive number (Stream)."));: 이는 터미널 연산입니다. 터미널 연산은 스트림을 소비하고 결과를 생성합니다.forEach()메서드는 스트림의 각 요소에 대해 작업을 수행합니다. 여기서는 각 양수를 메시지와 함께 출력합니다.
PositiveCheck.java 파일을 저장합니다.
이제 터미널에서 수정된 프로그램을 컴파일하고 실행합니다.
javac PositiveCheck.java
java PositiveCheck
이전과 동일한 출력이 표시되지만 업데이트된 메시지가 표시됩니다.
10 is a positive number (Stream).
20 is a positive number (Stream).
15 is a positive number (Stream).
이는 Stream API 가 기존 for 루프와 동일한 결과를 얻는 데 어떻게 사용될 수 있는지 보여주며, 특히 더 복잡한 작업의 경우 더 읽기 쉽고 표현력이 풍부한 코드를 제공합니다.
0 과 음수 처리
이전 단계에서는 양수를 식별하는 데 집중했습니다. 이제 프로그램을 확장하여 0 과 음수도 식별해 보겠습니다. 이렇게 하면 배열의 숫자에 대한 더 완전한 그림을 얻을 수 있습니다.
if-else if-else 문을 사용하여 조건부 논리를 이해하기가 더 쉬우므로, 먼저 기존의 for 루프 접근 방식을 사용하여 0 과 음수를 확인하도록 PositiveCheck.java 파일을 다시 수정합니다.
편집기에서 PositiveCheck.java 파일을 엽니다. 기존 코드를 다음으로 바꿉니다.
public class PositiveCheck {
public static void main(String[] args) {
// Define an array of integers
int[] numbers = {10, -5, 20, 0, 15, -8};
// Loop through the array
for (int i = 0; i < numbers.length; i++) {
// Get the current number
int currentNumber = numbers[i];
// Check if the number is positive, negative, or zero
if (currentNumber > 0) {
System.out.println(currentNumber + " is a positive number.");
} else if (currentNumber < 0) {
System.out.println(currentNumber + " is a negative number.");
} else {
System.out.println(currentNumber + " is zero.");
}
}
}
}
다음은 새로운 내용입니다.
else if (currentNumber < 0): 이는else if문입니다. 이전if조건 (currentNumber > 0) 이 false 인 경우에만currentNumber가 0 보다 작은지 확인합니다.else: 이는else문입니다. 선행if또는else if조건이 모두 true 가 아닌 경우else블록 내부의 코드가 실행됩니다. 이 경우 숫자가 0 보다 크지 않고 0 보다 작지 않으면 0 이어야 합니다.
PositiveCheck.java 파일을 저장합니다.
이제 터미널에서 수정된 프로그램을 컴파일하고 실행합니다.
javac PositiveCheck.java
java PositiveCheck
이제 배열의 각 숫자를 분류하는 출력을 볼 수 있습니다.
10 is a positive number.
-5 is a negative number.
20 is a positive number.
0 is zero.
15 is a positive number.
-8 is a negative number.
이는 if-else if-else 문을 사용하여 루프 내에서 여러 조건을 처리하는 방법을 보여줍니다. 이는 프로그래밍에서 의사 결정을 위한 기본적인 패턴입니다.
partitioningBy 또는 여러 filter 연산과 같은 고급 기술을 사용하여 Stream API 를 사용하여 유사한 결과를 얻을 수도 있지만, if-else if-else를 사용한 for 루프는 특히 초보자에게 이 특정 작업에 대한 명확하고 간단한 접근 방식입니다.
요약
이 Lab 에서는 Java 에서 배열에 양수만 포함되어 있는지 확인하는 방법을 배웠습니다. for 루프를 사용하여 배열을 반복하는 방법과 Java Stream API 를 활용하는 두 가지 주요 방법을 살펴보았습니다.
먼저 Java 클래스를 만들고 for 루프를 사용하여 정수 배열의 각 요소를 검사하는 것으로 시작했습니다. 조건 검사 (if (currentNumber > 0)) 를 구현하여 양수를 식별하고 출력했습니다. 이 기본적인 접근 방식은 배열 내에서 개별 요소에 액세스하고 처리하는 방법을 보여주었습니다. 제공된 내용은 루프 방식만 자세히 설명했지만, Lab 의 구조는 후속 단계에서 Stream API 와 0/음수 처리를 다루어 이 일반적인 프로그래밍 작업에 대한 다양한 기술에 대한 포괄적인 이해를 제공할 것임을 나타냅니다.



