2011-10-24 2 views
2
import java.io.IOException; 
import java.util.*; 

public class calling { 
public static String s; 
public static String t; 
public static int y; 
public static int x; 

public static int num1() { 
int x; 
Scanner scanner = new Scanner (System.in); 
System.out.println("Please enter a number called x: "); 
x=scanner.nextInt(); 
return x;  
} 

public static int num2() { 
int y; 
Scanner scanner = new Scanner (System.in); 
System.out.println("Please enter a second number called y: "); 
y=scanner.nextInt(); 
return y;  
} 

public static void calculation() { 
Scanner input = new Scanner(System.in); 

System.out.println("What process would you like to do? *, /, + or - ?"); 
s=input.next(); 

if (s.equals("*")) { 
System.out.println("\nThe product of these numbers is:" + (x*y));} 
else 
if (s.equals("+")) { 
System.out.println("\nThe sum of these numbers is: " + (x+y));} 

System.out.println("\nDo you want x or y to be the dividor/subtractor?: "); 
t=input.next(); 

if (t.equals("y") || t.equals("Y")) { 

if (s.equals("/")) { 
System.out.println("\nThe quotient of these numbers is: " + (x/y));} 
else 
if (s.equals("-")) { 
System.out.println("\nThe difference of these numbers is: " + (x-y));}} 

else 
if (t.equals("x") || t.equals("X")){ 

if (s.equals("/")) { 
System.out.println("\nThe quotient of these numbers is: " + (y/x));} 
else 
if (s.equals("-")) { 
System.out.println("\nThe difference of these numbers is: " + ((y-x)));}} 
} 

public static void main (String [] args) throws IOException { 


num1(); 
num2(); 
calculation(); 


} 

} 

단순히 Java 코드에 DivideByZeroException이 나타나는 이유는 무엇입니까? 주요 "java.lang.ArithmeticException"스레드에서 예외 ":

수행되는 계산 결과 내 최종 결과가 될해야하는지에이 오류가 계속 오류입니다/이 가능성이 숙제이기 때문에 calling.calculation에서 0 (calling.java:44) calling.main에서 (calling.java:64) "

+6

당신은 0으로 나눌 수 없습니다, 그것은 인터넷을 깨뜨립니다. – Joe

+0

0으로 나누지 않았습니다 ... 시도해보십시오 ... 25/5로 나누는 데있어 정확한 오류가 있습니다. –

+0

아니요. 다시 봐. – EJP

답변

2

으로, 나는 당신에게 오른쪽을 가리 키도록 힌트를주지 방향. 당신이 당신의 프로그램을 실행하면

, 당신은 사용자로부터 xy의 값을 수집 num1num2을 실행합니다. num2에서 y은 로컬 변수로 선언됩니다. num2이 반환하면 해당 변수는 어떻게됩니까? 클래스 7 필드 (변수) y이 7 행에 선언 된 것은 무엇을 의미합니까?

이것은 디버거 사용법을 배우기에도 좋은 시간입니다. 44 번째 줄에 중단 점을 넣고 xy의 값이 무엇인지 확인합니다.

int x; 
int y; 

원하는 것들 :

+0

그 숙제가 아니라 (단지 자바를 배우기 위해 나 자신에게주는 작은 과제들) ... 그러나 도움 동료에게 감사드립니다! –

0

당신은 확실히 있는지 확인해야합니다. Integer는 정적 인 경우 0을 기본값으로 사용합니다.

+0

많은 감사합니다 !!! 내가 jsut num1과 num2에서 삭제할 필요했습니다. –

관련 문제