This week's book giveaway is in the OCAJP 8 forum. We're giving away four copies of OCA Java SE 8 Programmer I Study Guide and have Edward Finegan & Robert Liguori on-line! See this thread for details.

I have been working on this project for a bit now and I had a few questions because I am stumped.

I have it set up as a loop. Every time you would not select a one of the proper numbers it would error out. So what I did was create an error box to appear when you don't select the right one (right below). It won't pop up until after you selected and entered in a number then it it will pop up every time you select something. I think it has something to do with my placing of the code. One of my friends was saying it should break before it loops but if it breaks then the loop stops. Is there a way to have it break then start back in the loop?

value =JOptionPane.showInputDialog("Please chose one of the options:"+"\n" + "a)Enter 1 to calculate the area of the Circle"+ "\n"+ "b)Enter 2 to calculate the area of the Triangle"+ "\n"+ "c)Enter 3 to calculate the area of the Square"+ "\n"+ "d)Enter 4 to calculate the area of the Rectangle"+"\n"+ "e)Enter 5 to calculate the area of the Cube"+"\n"+ "f)Enter 6 to exit the program"); choice=Double.parseDouble(value);

// while option is not 6 continue

while(choice!=6){

//if selected number calculate the area of circle

if(choice==1){ first = JOptionPane.showInputDialog("Enter the value of radius"); radius = Double.parseDouble(first); area = Math.PI*radius*radius; //print out the result JOptionPane.showMessageDialog(null,"The area of the Circle: "+area,"result", JOptionPane.INFORMATION_MESSAGE); }

//If selected number is 2 calculate the area of triangle and prints result

else if(choice==2){ first=JOptionPane.showInputDialog("Enter the value of lenght"); second=JOptionPane.showInputDialog("Enter the value of width"); length = Double.parseDouble(first); width=Double.parseDouble(second); area= (width*length)/2; JOptionPane.showMessageDialog(null,"The area of triangle: "+ area,"result", JOptionPane.INFORMATION_MESSAGE); }

//If selected number is 3 calculate the area of square and prints result

else if(choice==3){ first = JOptionPane.showInputDialog("Enter the value of length"); length = Double.parseDouble(first);//ge string into integer area=length*length; JOptionPane.showMessageDialog(null,"The area of the square: "+ area," result", JOptionPane.INFORMATION_MESSAGE); }

//If selected number is 4 calculate the area of rectangle and prints result

else if(choice==4){ first=JOptionPane.showInputDialog("Enter the value of length"); second=JOptionPane.showInputDialog("Enter the value of width"); length=Double.parseDouble(first); width=Double.parseDouble(second); area=width*length; JOptionPane.showMessageDialog(null,"The area of the rectangle: "+ area,"result", JOptionPane.INFORMATION_MESSAGE); }

//If selected number is 5 calculat the area of cube and prints result

else if(choice==5) { first=JOptionPane.showInputDialog("Enter the value of length"); length=Double.parseDouble(first); area=6*length; JOptionPane.showMessageDialog(null,"The area of the cube: "+ area,"result", JOptionPane.INFORMATION_MESSAGE); }

value =JOptionPane.showInputDialog("Please chose one of the options:"+"\n" + "a)Enter 1 to calculate the area of the Circle"+ "\n"+ "b)Enter 2 to calculate the area of the Triangle"+ "\n"+ "c)Enter 3 to calculate the area of the Square"+ "\n"+ "d)Enter 4 to calculate the area of the Rectangle"+"\n"+ "e)Enter 5 to calculate the area of the Cube"+"\n"+ "f)Enter 6 to exit the program");

choice=Double.parseDouble(value);

// If choice is not 1-5 a error message will pop up with an error

You should use "&&" instead of "||". The logic is not clean either. You'd better make it more readable, like: 1. use do/while 2. read for a number 3. if 6 break 4. check number 5. do something according to the value

Was Satou's correction to use && instead of || clear? It's a fundamental bit of boolean algebra, one of DeMorgan's Laws. My college didn't have a CS department, so I got this in a Philosophy class on logic:

The opposite of (A or B) is (!A and !B) The opposite of (A and B) is (!A or !B)

or

not (P and Q) = (not P) or (not Q) not (P or Q) = (not P) and (not Q)

In your program, a good result is (choice==1 or choice==2). We're testing for a bad result, which is the opposite of the good result, which is (choice!=1 and choice!=2).

A good question is never answered. It is not a bolt to be tightened into place but a seed to be planted and to bear more seed toward the hope of greening the landscape of the idea. John Ciardi