If/Else语句出错

use*_*646 -1 java if-statement

public class proj22
{
    public static void main(String[] args)
    {   float degreef, degreec, degree;
            string cel = "c";
            string far = "f";
            string unit;
            System.out.println("Enter a temperture:");
            scanner keyboard = new Scanner (System.in);
            degree = keyboard.nextFloat();
            System.out.println("Enter a c to designate Celsius, or an f to designate..");        
            unit = keyboard.next();
            if (unit.equalsIgnoreCase(cel)||unit.equalsIgnoreCase(far))
            {
                    if (unit.equalsIgnoreCase(cel))
                    {
                            degreec = 5*(degreef-32)/9;
                            System.out.println("The degree you entered in Celsius is" + 
                            System.out.println("The degree you entered in Fahrenheit" + 

                    }
                    else
                            degreef = degree;
                            degreef = (9*(degreec/5)+32);
                            System.out.println("The degree you entered in Fahrenheit" + 
                            degreec + "C");

            else
                    System.out.println("Error: incorrect letter usage.");

            }
    }
}
Run Code Online (Sandbox Code Playgroud)

此代码正常运行,但在第27行编译时声明:

"proj22.java:27: error: 'else' without 'if'
        else
        ^

1 error"
Run Code Online (Sandbox Code Playgroud)

我该怎么做才能解决这个问题?

Jak*_*lat 5

当你有一个多if,else,for等等,你需要加上括号,使他们成为一个块,编译器作为一个单独的语句进行解释:

else
{//you need to add a bracket here
    degreef = degree;
    degreef = (9*(degreec/5)+32);
    System.out.println("The degree you entered in Fahrenheit" + 
    degreec + "C");
}//and here
Run Code Online (Sandbox Code Playgroud)

另外,最后一个之后的括号应该在它之前移动.