[JAVA기초(12)] 분기문 실습(1), (2) / next(), nextLine() 차이 / equals 메소드

2022. 5. 8. 18:49·Dev/Java
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
'Dev/Java' 카테고리의 다른 글
  • [JAVA기초(14)] 배열 실습(1), (2)
  • [JAVA기초(13)] 배열 Array, 배열 복사
  • [JAVA기초(11)] 분기문 - break, continue
  • [JAVA기초(10)] 별찍기 실습, 여러가지 풀이
블혜
블혜
  • 블혜
    Blehye Dev
    블혜
  • 전체
    오늘
    어제
    • 분류 전체보기 (133)
      • Dev (69)
        • Java (45)
        • HTML5 CSS3 (16)
        • Javascript (2)
        • 국비학원 (4)
        • Error! (2)
      • Algorithm (12)
        • PS (9)
        • Algorithm (3)
      • English (22)
        • Webtoon (6)
        • Grammar In Use (15)
      • DAILY (20)
        • Trip (10)
        • Musical (2)
        • Swimming (5)
        • Book (1)
        • Test (1)
      • etc. (10)
        • Display (10)
  • 블로그 메뉴

    • 홈
    • STUDY
    • DAILY
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    SKCT꿀팁
    감천문화마을
    여자혼자여행
    태종대
    홍대개미
    SKCT팁
    하이닉스
    SKCT후기
    인적성
    부산여행
    SKCT시험
    부산혼자여행
    SK하이닉스
    흰여울문화마을
    송도해수욕장
    혼자여행
    SKCT
  • 최근 댓글

  • 최근 글

  • 반응형
    250x250
  • hELLO· Designed By정상우.v4.10.3
블혜
[JAVA기초(12)] 분기문 실습(1), (2) / next(), nextLine() 차이 / equals 메소드
상단으로

티스토리툴바