JAVA
요리 레시피 메모장 만들기 / 배열, 입출력, 형변환
김예나
2025. 1. 2. 00:34
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String title = scanner.nextLine();
float star = scanner.nextFloat();
scanner.nextLine(); //버퍼에 남아있는 \n을 가져와 비움
float percentage_star = (star / 5.0f) * 100;
String[] recipe = new String[10];
for (int i = 0; i < 10; i++){
recipe[i] = scanner.nextLine();
}
System.out.println(recipe[0]);
System.out.println("[ " + title + " ]");
System.out.println("별점 : " + (int)star + " (" + percentage_star + "%" + ")");
int index = 1;
for (int i = 0; i < 10; i++){
System.out.println( index++ + ". " + recipe[i]);
}
}
}
배열
향후 미리 저장할 값들을 선언하는 경우 : 타입[] 변수 = new 타입[길이];
문제점 및 해결
scanner.nextFloat(); 이후, 배열의 첫 번째 값이 입력되지 않음
- nextInt() 같은 메서드는 버퍼에 남아있는 연속된 숫자만 리턴하기 때문에, enter 값인 \n은 버퍼에 남겨둔다
- 그렇기 때문에 버퍼를 비워주는 작업을 통해서 해결함
float star = scanner.nextFloat();
scanner.nextLine(); //버퍼에 남아있는 \n을 가져와 비움
백분율을 구하는 부분에서 형변환 주의
- (star / 5.0f) 부분에서 나누는 수를 명시적으로 실수라고 지정해야 정확한 결과값이 나옴