정말 초보입니다 소스코드 문제점 알려주세요~
조회수 543회
자바이구요 원래 계획했던 거는 아주아주 기초 계산기처럼
여러가지 수식을 계산할 수 있도록 하는건데 프로그램 오류는 안나는데
수식 입력하면 결과가 안나오고 아무런 값이 안나와서요
혹시 어느부분이 어떻게 잘못됬는지 짚어주시면 감사하겠습니다.
예 : 3 + 5 * 6 / 5 를 입력하면 결과가 나와야하는데
그냥 공백만 나와서요 고수님들 부탁드립니다!!
package main;
import java.util.Scanner;
public class Main4 {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.print("수식을 입력하세요");
Scanner s = new Scanner(System.in);
int x = s.nextInt();
while(true)
{
String ops = s.next();
if (ops == null)
{
break;
}
char op = ops.charAt(0);
int y = s.nextInt();
int z = 0;
switch(op)
{
case '+':
x += y;
break;
case '-':
x -= y;
break;
case '*':
x *= y;
break;
case '/':
x /= y;
break;
case '%':
x %=y;
break;
default:
System.out.println("입력 오류");
}
}
System.out.println(x);
}
}
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
"3 + 5 * 6 / 5" 를 한번에 입력하신건가요?
코드를 보니 '3' 입력 후 '+' 입력 후 '5' 입력 이렇게 한글자씩만 입력을 해야 돌아갑니다.
결과가 안나오고 아무런 값이 안나온다고 말씀하셨는데 아마 프로그램이 입력을 기다리느라고 멈춰있을겁니다.
입력 받는 부분마다 print 문으로 친절하게 안내 문구를 쓰는걸 추천드립니다 :)
public static void main(String[] args) { Scanner s = new Scanner(System.in); System.out.print("첫번재 숫자를 입력하세요"); int x = s.nextInt(); System.out.print("연산자를 입력하세요"); String ops = s.next(); System.out.print("두번째 숫자를 입력하세요"); int y = s.nextInt(); if (ops == null){ System.out.print("연산자가 없어요"); return; } char op = ops.charAt(0); switch(op) { case '+': x += y; break; case '-': x -= y; break; case '*': x *= y; break; case '/': x /= y; break; case '%': x %=y; break; default: System.out.println("입력 오류"); } System.out.println(x); }
댓글 입력