Why won't my simple Java Program Compile? Grr!

CM4

Member
Jun 9, 2001
64
0
0
Hi,



This program is simply supposed to take a number input from the user
which is supposed to be a mark and print out the resulting grade
and mark.

I have used an If statement and a Switch statement because I have to.
It is an excercise I am working on.


I just get one compilation error in JBuilder. The following:

"Mark2Grade.java": Error #: 204 : illegal start of expression at line 20, column 21

This is the if-else statement but can't see anything wrong with it.


Any help would be appreciated

Thanks, :)
A Java Newbie

__________________________________________________________________
__________________________________________________________________







/* Given a percentage, converts it to
* a grade from A+ to F
*/

import javax.swing.*;

public class Mark2Grade {

public static void main (String[] args){

String markIn;
int finalMark, grade;

markIn = JOptionPane.showInputDialog("Enter a mark", JOptionPane.QUESTION_MESSAGE);

// Convert String to Integer
finalMark = Interger.ParseInt (markIn);

// Calculate grade
if ( finalMark => 90 && <= 100 ) {
grade = 1;
}
else if ( finalMark => 80 && <= 89 ) {
grade = 2;
}
else if ( finalMark => 70 && <= 79 ) {
grade = 3;
}
else if ( finalMark => 60 && <= 69 ) {
grade = 4;
}
else if ( finalMark => 50 && <= 59 ) {
grade = 5;
}
else if ( finalMark => 40 && <= 49 ) {
grade = 6;
}
else
( finalMark <= 39 ) {
grade = 7;
}//end switch

// End Switch Statement
switch (grade) {
case 1: JOptionPane.showMessageDialog(null, "Grade A+, mark: " + finalMark);
break;
case 2: JOptionPane.showMessageDialog(null, "Grade A-, mark: " + finalMark);
break;
case 3: JOptionPane.showMessageDialog(null, "Grade A, mark: " + finalMark);
break;
case 4: JOptionPane.showMessageDialog(null, "Grade B, mark: " + finalMark);
break;
case 5: JOptionPane.showMessageDialog(null,"Grade C, mark: " + finalMark);
break;
case 6: JOptionPane.showMessageDialog(null, "Grade D, mark: " + finalMark);
break;
case 7: JOptionPane.showMessageDialog(null, "Grade F, mark: " + finalMark);
break;

}//end switch statement

}//end main
}//end class
 

MGMorden

Diamond Member
Jul 4, 2000
3,348
0
76
Your format for the if statement looks wrong (or at least I've never seen one that way)

if ( finalMark => 90 && <= 100 )

should be

if ((finalMark >= 90) && (finalMark <= 100))

The other else if's should be done similiarly.

EDIT: BTW, you can skip half of those comparisions if you go bottom up instead of top down. Example:

if ( finalMark < 40) {
grade = 7;
}
else if ( finalMark < 50 ) {
grade = 6;
}
else if ( finalMark < 60) {
grade = 5;
}
else if ( finalMark < 70 ) {
grade = 4;
}
else if ( finalMark < 80 ) {
grade = 3;
}
else if ( finalMark < 90 ) {
grade = 2;
}
else if (finalMark < 100) {
grade = 1;
}


Another EDIT: Actually, I noticed while showing the example above that after your last else you have a condition. That's not valid. Else 's alone don't have conditions (they're the generic fallback case). If you want a condition after that last one make it an else if.
 

CM4

Member
Jun 9, 2001
64
0
0
I have tried it, and now the illegal expression error has gone.

I now get these errors
"Mark2Grade.java": Error #: 300 : method showInputDialog(java.lang.String, int) not found in class javax.swing.JOptionPane at line 15, column 26
"Mark2Grade.java": Error #: 300 : variable Interger not found in class Mark2Grade at line 18, column 17


Thanks

___________________________________________________________
___________________________________________________________

Changed code

/* Given a percentage, converts it to
* a grade from A+ to F
*/

import javax.swing.*;

public class Mark2Grade {

public static void main (String[] args){

String markIn;
int finalMark, grade;

//get input
markIn = JOptionPane.showInputDialog("Enter a mark",
JOptionPane.QUESTION_MESSAGE);
// Convert String to Integer
finalMark = Interger.ParseInt(markIn);

// Calculate grade
if ((finalMark >= 90) && (finalMark <= 100)) {
grade = 1;
}
else if ((finalMark >= 80 ) && (finalMark <= 89 )) {
grade = 2;
}
else if ((finalMark >= 70) && (finalMark <= 79 )) {
grade = 3;
}
else if ((finalMark >= 60 )&& (finalMark <= 69 )) {
grade = 4;
}
else if ((finalMark >= 50) && (finalMark <= 59)) {
grade = 5;
}
else if ((finalMark >= 40) && (finalMark <= 49 ) ){
grade = 6;
}
else if ( finalMark <= 39 ) {
grade = 7;
}//end if statement


switch (grade) {
case 1: JOptionPane.showMessageDialog(null, "Grade A+, mark: " + finalMark);
break;
case 2: JOptionPane.showMessageDialog(null, "Grade A-, mark: " + finalMark);
break;
case 3: JOptionPane.showMessageDialog(null, "Grade A, mark: " + finalMark);
break;
case 4: JOptionPane.showMessageDialog(null, "Grade B, mark: " + finalMark);
break;
case 5: JOptionPane.showMessageDialog(null, "Grade C, mark: " + finalMark);
break;
case 6: JOptionPane.showMessageDialog(null, "Grade D, mark: " + finalMark);
break;
case 7: JOptionPane.showMessageDialog(null, "Grade F, mark: " + finalMark);
break;

}//end switch statement

}//end main
}//end class
 

MGMorden

Diamond Member
Jul 4, 2000
3,348
0
76
Well the second is pretty simple. Integer isn't spelled Interger (finalMark = Interger.ParseInt(markIn)) ;). The first one looks like you have your specifications wrong for the class (I'm not sure though. All my GUI work in Java was done with the AWT instead of Swing).