Win a copy of Think Java: How to Think Like a Computer Scientist this week in the Java in General forum!

# Boolean Help Needed in J2SDK1.4.2_06!

Hugh Mclaughlin
Greenhorn
Posts: 24
Right basically I'm creating a program to ascertain whether the 3 sides of a triangle A,B,C input by the user make an Isosceles, Equilateral or Scalene triangle!

I've made a class and an app but am having disticnt trouble with the boolean operators! Please help me ASAP as I have to hand this in for uni tomorrow, if someone manages it I may reward you via Paypal!!

Heres my code:

class TriangleRecognition {

//-------------------FIELDS----------------------

private int a_value, b_value, c_value;

//-------------------CONSTRUCTORS----------------

public TriangleRecognition(int a_intInput, int b_intInput, int c_intInput) {
a_value = a_intInput;
b_value = b_intInput;
c_value = c_intInput;
}

//------------------METHODS----------------------

/* Resolve whether triangle is Equilateral, Isosceles or Scalene. */

public boolean resolveTriangleRecognition() {

if ((a_value) == (b_value) == (c_value)) ;
return(true);
if ((a_value) == (b_value) != (c_value)) ;
return(true);
if ((a_value) != (b_value) != (c_value)) ;
return(true);

}
}

-----------------------------------------------------------------------
import java.io.*;

class TriangleRecognitionApp {

//---------------FIELDS----------------

private Triangle

//--------------METHODS-----------------

/* Main method */

public static void main(String[] args) throws IOException {
int newA_value, newB_value, newC_value;

//INPUT

System.out.print("Input side A:");

System.out.print("Input side B:");

System.out.print("Input side C:");

//OUTPUT

if ((newA_value) == (newB_value) == (newC_value)) {
triangle = "Equilateral";
} else if ((newA_value) == (newB_value) != (newC_value)) {
triangle = "Isoceles";
} else if ((newA_value) != (newB_value) != (newC_value)) {
triangle = "Scalene";
} else {
triangle = "Error";
}
System.out.println("Equilateral");
System.out.println("Isosceles");
System.out.println("Scalene");
}
}

-----------------------------------------------------------------------

David Harkness
Ranch Hand
Posts: 1646
All of the comparison operators (==, !=, >, ...) are binary operators, meaning they operate on two arguments only. To compare more than two arguments, you need to use the logical operatores "and" ("&&") and "or" ("||") .

Here's one example to get you going.The second line is just to show you how the compiler sees it. The comparison operators have higher precedence than the logical operators, meaning the parenthesis in that line are unnecessary, but they sometimes make it clearer for anyone reading the code.

In your first if testdoesn't work because the compiler turns the first part "(a_value) == (b_value)" into a boolean result which cannot be compared to b_value, an int.

[ Smily Attack! ]
[ November 18, 2004: Message edited by: David Harkness ]

Nick George
Ranch Hand
Posts: 815