728x90
반응형
package practice.repetitive;
import java.util.Scanner;
public class RepetitivePractice {
public void method3() {
//문자열 무한 반복 입력
Scanner sc = new Scanner(System.in);
String result = "";
while(true) {
System.out.print("문자열 입력 : ");
String str = sc.nextLine();
if (str.equals("stop")) { //if(str == "stop") 이렇게 쓰면 안된다..!!
System.out.println("결과 : " + result);
break;
}
result += str + " ";
System.out.println("결과 : "+ result);
}
}
}
💻 4번 문제 헷갈린거 💻
📑 sc.nextLine() 과 sc.next() 의 차이는 뭔가???
nextLine() : 한 라인 전체를 입력 받음
next() : 공백 기준으로 나눠서 입력 받음
💡 sc.next() 일때의 결과는?
package prac1.exam;
import java.util.Scanner;
public class Blehye {
public void practice() {
Scanner sc = new Scanner(System.in);
String result = "";
while(true) {
System.out.print("문자열 입력 : ");
String str = sc.next();
if (str.equals("stop")) {
System.out.println("결과 : " + result);
break;
}
result += str + " ";
System.out.println("결과 : " + result);
}
}
}
/*
문자열 입력 : hello
결과 : hello
문자열 입력 : eve ryone
결과 : hello eve
문자열 입력 : 결과 : hello eve ryone
문자열 입력 : a p p l e
결과 : hello eve ryone a
문자열 입력 : 결과 : hello eve ryone a p
문자열 입력 : 결과 : hello eve ryone a p p
문자열 입력 : 결과 : hello eve ryone a p p l
문자열 입력 : 결과 : hello eve ryone a p p l e
문자열 입력 : stop
결과 : hello eve ryone a p p l e
*/
📑 str == "stop" 이 아니라 str.equals("stop") 이다.. 왜???
JAVA에서 String은 주소값이 부여되며, 같은 값이더라도 서로 주소값이 다르다.
(int, char형 등은 주소값을 가지지 않는다.)
== 연산자는 비교대상의 주소값을 비교하고, equals 메소드는 비교대상의 값 자체를 비교한다.
따라서 String 값 비교시 equals 메소드를 사용해야한다.
package practice.repetitive;
import java.util.Scanner;
public class RepetitivePractice {
public void method4() {
//카페 주문 프로그램
Scanner sc = new Scanner(System.in);
//메뉴별 주문량
int ameri = 0;
int cafe = 0;
int vanila = 0;
//무한 반복
while(true) {
//메뉴 출력
System.out.println("======== 메뉴 ========");
System.out.println("1. 아메리카노 3500원");
System.out.println("2. 카페라떼 4100원");
System.out.println("3. 바닐라라떼 4300원");
System.out.println("====================");
System.out.print("메뉴 선택 : ");
int menu = sc.nextInt();
if (menu == 1 || menu == 2 || menu ==3 ) {
System.out.print("수량 선택 : ");
int amount = sc.nextInt();
switch (menu) {
case 1:
ameri += amount;
break;
case 2:
cafe += amount;
break;
case 3:
vanila += amount;
break;
default:
System.out.println("잘못 선택하셨습니다... 다시 선택해주세요.");
continue;
}
System.out.print("추가 주문하시겠습니까?(y/n) : ");
char select = sc.next().charAt(0);
if(select == 'n' || select == 'N') {
System.out.println("==================");
if (ameri != 0) {
System.out.println("아메리카노 " + ameri + "잔 : " + 3500*ameri + "원");
}
if (cafe != 0) {
System.out.println("카페라떼 " + cafe + "잔 : " + 4100*ameri + "원");
}
if (vanila != 0) {
System.out.println("바닐라라떼 " + vanila + "잔 : " + 4300*ameri + "원");
}
System.out.println("==================");
System.out.println("총액 : " + (3500*ameri + 4100*cafe + 4300*vanila));
break;
}
} else {
System.out.println("잘못 선택하셨습니다. 다시 선택해주세요.");
continue;
}
}
}
}
728x90
반응형
'Dev > Java' 카테고리의 다른 글
[JAVA기초(14)] 배열 실습(1), (2) (0) | 2022.05.08 |
---|---|
[JAVA기초(13)] 배열 Array, 배열 복사 (0) | 2022.05.08 |
[JAVA기초(11)] 분기문 - break, continue (0) | 2022.05.08 |
[JAVA기초(10)] 별찍기 실습, 여러가지 풀이 (0) | 2022.05.08 |
[JAVA기초(9)] 반복문 - for문, while문, 구구단 (0) | 2022.05.08 |