问题
I am new around here but let's get straight to the question: When I was writing the following code for a class project calculator I came across a "token error". This is the full error message:
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
Syntax error on token "else", delete this token
at calculatorApplet.main(calculatorApplet.java:42)
I wrote this code:
import java.util.Scanner;
import javax.swing.JOptionPane;
public class calculatorApplet
{
Scanner sc = new Scanner(System.in);
public static void main(String[] args)
{
JOptionPane.showMessageDialog(null, "Welcome to the Calculator!");
String option = JOptionPane.showInputDialog(null, "Which calculator mode do you want?");
if (option.equals("Addition"))
{
Double add1 = Double.parseDouble(JOptionPane.showInputDialog(null, "Okay type the first number(s) of your addition problem."));
Double add2 = Double.parseDouble(JOptionPane.showInputDialog(null, "Now type the second number(s) of your addition problem."));
Double preAdd = add1+add2;
Double Add = preAdd;
JOptionPane.showMessageDialog(null, "The sum is " + Add + ".");
}
else
{
JOptionPane.showMessageDialog(null, "Huh?");
}
if (option.equals("Subtraction"))
{
Double sub1 = Double.parseDouble(JOptionPane.showInputDialog(null, "Okay type the first number(s) of your subtraction problem."));
Double sub2 = Double.parseDouble(JOptionPane.showInputDialog(null, "Now type the second number(s) of your subtraction problem."));
Double preSub = sub1-sub2;
Double Sub = preSub;
JOptionPane.showMessageDialog(null, "The difference is " + Sub + ".");
}
else
{
JOptionPane.showMessageDialog(null, "Huh?");
}
if (option.equals("Multiplication"));
{
Double mult1 = Double.parseDouble(JOptionPane.showInputDialog(null, "Okay type the first number(s) of your multiplication problem."));
Double mult2 = Double.parseDouble(JOptionPane.showInputDialog(null, "Now type the second number(s) of your multiplication problem."));
Double preMult = mult1*mult2;
Double Mult = preMult;
JOptionPane.showMessageDialog(null, "The product is " + Mult + ".");
}
else //Here is the error.
{
JOptionPane.showMessageDialog(null, "Huh?");
} //Here ends the error.
if (option.equals("Division"))
{
Double div1 = Double.parseDouble(JOptionPane.showInputDialog(null, "Okay type the first number(s) of your division problem."));
Double div2 = Double.parseDouble(JOptionPane.showInputDialog(null, "Now type the second number(s) of your division problem."));
Double preDiv = div1/div2;
Double Div = preDiv;
JOptionPane.showMessageDialog(null, "The quotient is " + Div + ".");
}
else
{
JOptionPane.showMessageDialog(null, "Huh?");
}
//End of if statements.
}
}
That's the code and I commented the area where the token error is. Maybe the solution is right in my face. I want my code to be a calculator so if you guys can fix my code to not conflict with the math operations. Thanks and I appreciate any help.
回答1:
The problem is the semicolon after the if
.
The grammar is if
(
condition )
expression-or-block { else
expression-or-block }
Since ;
is an empty expression, this works for an if clause and nothing happens in the then clause - in your case syntactically there is no else clause, since your if statement statements ends with the semicolon and is followed by a simple block. Then the tokenizer detects a dangling else
token and complains.
回答2:
Remove the ;
from the line end here:
if (option.equals("Multiplication"));
回答3:
You have a semi-colon at the end of the If statement preceding where the error is occuring.
if (option.equals("Multiplication"));
回答4:
Change
if (option.equals("Multiplication"));
to
if (option.equals("Multiplication"))
without the semicolon
回答5:
remove semicolon ( ;) at the end of the statement if (option.equals("Multiplication"));
回答6:
Change:
if (option.equals("Multiplication"))
回答7:
Need no ; at the end of if condition
if(option.equals("Multiplication"))
回答8:
remove the semicolon from the if statement
if (option.equals("Multiplication"));
should be
if (option.equals("Multiplication"))
来源:https://stackoverflow.com/questions/17833861/how-to-resolve-syntax-error-on-token-else-in-java