[질문 내용] Scanner scanner = new Scanner(System.in); int total = 0; while (true) { System.out.println("1 : 상품 입력, 2 : 결제, 3 : 프로그램 종료"); int option = scanner.nextInt(); scanner.nextLine(); // 이전에 입력된 개행문자 제거 switch (option) { case 1: System.out.print("상품명을 입력하세요. : "); String pName = scanner.nextLine(); System.out.print("상품의 가격을 입력하세요. : "); int pPrice = scanner.nextInt(); System.out.print("구매 수량을 입력하세요. : "); int pQuantity = scanner.nextInt(); total += pPrice * pQuantity; System.out.println("상품명 : " + pName + " 가격 : " + pPrice + "원 수량 : " + pQuantity + " 합계 : " + (pPrice * pQuantity)); break; case 2: System.out.println("총 비용 : " + total); total = 0; // // 결제 후 총 비용 초기화 break; case 3: System.out.println("프로그램을 종료합니다."); break; default: System.out.println("잘못된 접근입니다."); } } 김영한 강사님께서 마지막쯤에 switch() 로 활용해서 풀어봐도 좋다고 하셔서 해보았습니다. 그런데 switch문은 각 case마다 break; 를 넣어야지 해당 case 값에 속한 코드마다 수행을 할 수있는데 문제는 이게 while(true)로 무한반복중이라 3. 프로그램 종료 를 눌러봐도 콘솔에 계속 무한로딩이 끝나지 않고 있습니다. 어떻게 하면 좋을까요?
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 풀이를 보니 풀이가 훨씬 좋은 방법인건 인지가 되지만 제가 생각했을때 제 코드도 실행은 되어야 맞는데 자꾸 출금을 할때 출금 후 while문 처음으로 되돌아가지 않고 다시 출금액을 입력하라고 나옵니다 이유가 뭘까요..? 입금 시에는 정상적으로 while문 처음으로 돌아갑니다 .
[질문 내용] 사용자의 입력을 받을려면Scanner scanner = new Scanner(S ystem.in) ; 코드를 넣어줘야 하는데 여기서 궁금한 것은 제가 만약 int i = 1; 이라고 했다면 i라는 int타입의 변수를 선언과 동시에 초기화를 했다. 라고 볼 수 있습니다. 그렇다면 Scanner scanner라고 잘라서 보면 scanner변수를 선언한 것인데 그 뒤에 = new Scanner(S ystem.in) ;를 붙이면 scanner라는 변수로 = new Scanner(S ystem.in) ;를 초기화했다. 라고 읽어도 되는 걸까요? 아니면 따로 클래스 객체를 초기화하는 것을 뭐라고 부르는 명칭이 있나요?
[질문 내용] 2147483647이 int 타입의 최고값이라고 설명하는 부분에서 long maxIntValue = 2147483647; 이라고 long 타입으로 maxIntValue변수에 값을 초기화하였는데요. 여기서 2147483647을 제가 예시로 int intValue = 2147483647; 라고 초기화를 하면 정상적으로 오류없이 되는데 문제는 maxIntValue를 intValue에 저장할 때 왜 형변환을 해야 하는지 잘 모르겠습니다. 정상적으로 intValue에 2147483647값을 초기화를 했을때는 문제없이 잘 되는데, 어짜피 maxIntValue가 long타입으로 int보다 크고, 애초에 2147483647값이 int의 값 범위 안에 충분히 들어오는 값인데도 불구하고, 저장된 maxIntValue를 intValue안에 넣으면 당연히 정상일 텐데 왜 형변환을 해야 하는지 궁금합니다.
이전에 len함수의 경우엔 \0를 제외한 길이, a.length함수의 경우 \0를 포함한 길이 였다고 배운것 같은데.. 해당사항은 C언어 한정인가요?.. 헷갈리네요 문제 풀이를 보니 a.substring(1,4)면 4번째 자리를 제외한 문자열을 잘라 리턴해주는것 같습니다.(대충 감각따라 풀었더만 ello를 적어 틀렸네요..ㅠ) 이전 파이썬의 for문도 그렇고 이와같은 문자열 함수는 모두 1<=a<4 라고 생각하면 괜찮을까요? 아니면 예외함수가 있을까요?
1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 포스트맨을 통해서 요청을 보낼 때 url파라미터를 통해 page와size를 설정하였는데요, 이는 MemberSearchCondition 말고 Pageable 또한 앞에 @ModelAttribute가 생략된 형태로 동작한다고 생각하면 될까요? 실제 웹 사이트에서 페이징 처리된 부분의 버튼 같은 걸 누를 때 해당 파라미터들을 넣어주는 방식으로 동작할 것 같은데 맞을까요?
안녕하세요 주말 코딩님 강의 잘 듣고 있습니다! 목, 금, 토 이렇게 공부할 수 있는 시간이 3일정도밖에 남지 않은 상황입니다! 혹시 이론 파트 중에 여긴 꼭 확인하고 가라 하는 영역 있으실까요? 프로토콜 종류 결합도/응집도 디자인패턴 보안용어(암호화) 이 정도만 보고 가면 될까요? 선택과 집중이 필요할 것 같아서요!
안녕하세요, 영한님 뒤에 있을 채팅 프로그램을 직접 만들어보려다가 난관에 봉착해 질문드립니다. ClientV6 코드 내의 while문을 Thread에 넣는 작업을 진행하였습니다. 아직 클라이언트에서 입력 값을 넣기 전임에도 불구하고 서버에서 EOFException이 나는데 그 이유를 모르겠습니다. 혹시 제가 코드를 잘못 짠 것인지 아님 놓치는 부분이 있는 것인지 한 번 봐주실 수 있나요? public class ClientV6_1 { private static final int PORT = 12345; public static void main(String[] args) throws IOException { log("클라이언트 시작"); try ( Socket socket = new Socket("localhost", PORT); DataInputStream input = new DataInputStream(socket.getInputStream()); DataOutputStream output = new DataOutputStream(socket.getOutputStream()); ) { log("소켓 연결: " + socket); new Thread(new ClientHandler(socket), "ClientHandler").start(); } catch (IOException e) { log(e); } } } public class ClientHandler implements Runnable { private final Socket socket; private final DataInputStream input; private final DataOutputStream output; public ClientHandler(Socket socket) throws IOException { this.socket = socket; this.input = new DataInputStream(socket.getInputStream()); this.output = new DataOutputStream(socket.getOutputStream()); } @Override public void run() { Scanner scanner = new Scanner(System.in); try { while (true) { System.out.print("전송문자: "); String toSend = scanner.nextLine(); // send output.writeUTF(toSend); log("client -> server: " + toSend); if (toSend.equals("exit")) break; // receive String received = input.readUTF(); log("client <- server: " + received); } } catch (IOException e) { e.printStackTrace(); } finally { close(socket); } } }