2016-09-12 164 views
0

我需要建立這個程序,它會找到一個三角形的缺失的一面,但我不斷收到一條錯誤消息。這是我的代碼:Java基本計算器

import java.util.Scanner; 

public class MissingSide { 

    static java.util.Scanner userInput = new Scanner(System.in); 

    public static void main(String[] args) { 

    System.out.print("What is the first side, other than the hypotenuse?"); 

    if (userInput.hasNextInt()) { 
     int firstsideGiven = userInput.nextInt(); 
    } else { 
     System.out.println("Enter something acceptable"); 
    } 
    System.out.println("What is the hypotenuse?"); 

    if (userInput.hasNextInt()) { 
     int hypotenuseGiven = userInput.nextInt(); 
    } else { 
     System.out.print("Really?"); 
    } 
    System.out.print("Your missing side value is: " + 
    System.out.print((Math.pow(firstsideGiven, 2) - Math.pow(hypotenuseGiven, 2)) + "this"); 
    } 
} 

它總是告訴我說:「hypotenuseGiven」和「firstsideGiven」不能被解析到一個變量。這是爲了個人使用,而不是學校的事情。謝謝。

+2

您聲明的變量內的if語句,這意味着它的範圍僅限於if語句。 – 4castle

+0

此外,如果用戶沒有輸入數字,則會打印「輸入可接受的東西」或「真的嗎?」。你不覺得在這種情況下你應該回頭再問一次嗎? – Andreas

回答

5

firstsideGiven的範圍僅限於代碼中的if() {...}聲明。

您不能在該範圍之外使用它們。如果您希望這樣做,請在if() {...}區塊外宣佈。

0

變量的範圍僅限於if塊。

額外注:

1)也有代碼的是System.out.print的()部分語法錯誤。

2)根據畢達哥拉斯公式計算需要一個squreroot。

被調試代碼示例如下:

import java.util.*; 
import java.lang.Math; 

public class MissingSide 
{ 
    public static void main(String[] args) 
    { 
     int firstsideGiven = 0; 
     int hypotenuseGiven = 0; 
     Scanner userInput = new Scanner(System.in); 
     System.out.print("What is the first side, other than the hypotenuse?"); 

     if (userInput.hasNextInt()){ 

     firstsideGiven = userInput.nextInt(); 

     }else { 
      System.out.println("Enter something acceptable"); 
     } 
     System.out.println("What is the hypotenuse?"); 

     if (userInput.hasNextInt()){ 
      hypotenuseGiven = userInput.nextInt(); 
     }else{ 
      System.out.print("Really?"); 
     } 
     System.out.print("Your missing side value is: " +(Math.sqrt((hypotenuseGiven*hypotenuseGiven)-(firstsideGiven*firstsideGiven)))); 
     } 
    }