Hello and welcome to our community! Is this your first visit?
Register
Enjoy an ad free experience by logging in. Not a member yet? Register.
Results 1 to 2 of 2
  1. #1
    New to the CF scene
    Join Date
    Jan 2012
    Posts
    1
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Newbie help with if/else statments

    I am stuck on a homework problem. I think I am on the right track but am getting stuck on the if/else statement. I could be totally wrong though.

    Here is my assignment: Write a program that reads three integer inputs into variables. Display the input values in both the ordered entered and in sorted order. This program should sort the numbers so that value1 <= value2 <= value3.

    I have only been learning Java for a couple weeks, any help would be appreciated. Hoping to make this a career one day.

    Here is the code:


    import java.util.Scanner;

    public class OrderVariable {
    public static void main (String [] args) {

    Scanner input = new Scanner (System.in);

    System.out.prntln("Enter first variable");
    int VariableOne = input.nextInt();

    System.out.prntln("Enter second variable");
    int VariableTwo = input.nextInt();

    System.out.prntln("Enter third variable");
    int VariableThree = input.nextInt();

    if (VariableOne > VariableTwo && VariableOne > VariableThree)
    int Biggest = VariableOne;

    else if (VariableTwo > VariableOne && VariableTwo > VariableThree)
    int Biggest = VariableTwo;

    else (VariableThree > VariableOne && VariableThree > VariableTwo)
    int Biggest = VariableThree;

    if (VariableOne < VariableTwo && VariableOne < VariableThree)
    int Smallest = VariableOne;

    else if (VariableTwo < VariableOne && VariableTwo < VariableThree)
    int Smallest = VariableTwo;

    else (VariableThree < VariableOne && VariableThree < VariableTwo)
    int Smallest = VariableThree;


    if (VariableOne < Biggest && VariableOne > Smallest){
    int Mid = VariableOne;

    else if (VariableTwo < Biggest && VariableTwo > Smallest)
    int Mid = VariableTwo;

    else (VariableThree < Biggest && VariableThree > Smallest)
    int Mid = VariableThree;

    System.out.println(VariableOne + ", " + VariableTwo + ", " + VariableThree);
    System.out.println(Max + ", " + Mid + ", " + Min);
    }
    }

  • #2
    God Emperor Fou-Lu's Avatar
    Join Date
    Sep 2002
    Location
    Saskatoon, Saskatchewan
    Posts
    16,979
    Thanks
    4
    Thanked 2,659 Times in 2,628 Posts
    Have you learned the use of arrays? If so, this is far more trivial than this:
    PHP Code:
    int[] iArray = new int[3];
    iArray[0] = input.nextInt();
    iArray[1] = input.nextInt();
    iArray[2] = input.nextInt();

    System.out.println(iArray[0] + ", " iArray[1] + ", " iArray[2]);
    Arrays.sort(iArray);
    System.out.println(iArray[0] + ", " iArray[1] + ", " iArray[2]); 
    Otherwise, if/elseif's would work fine. You have two problems above; the first is that else's cannot carry conditions. The second is that you have an opening brace where it doesn't belong. IMO you should brace every branch even if its only 1 instruction. And finally, your accessing variables that don't exist. You used Biggest and Smallest, not Max and Min.
    Another approach would be to use a more simplified drill:
    PHP Code:
    if (v1 >= v2)
    {
        if (
    v1 >= v3)
        {
            
    // first is larger than both the second and the third
            
    biggest v1;
            if (
    v2 >= v3)
            {
                
    // third is smaller then the second, so therefore third is the smallest
                
    smallest v3;
                
    mid v2;
            }
            else
            {
                
    smallest v2;
                
    mid v3;
            }
        }
        else
        {
            
    biggest v3;
            
    smallest v2;
            
    mid v1;
        }
    }
    else if (
    v2 >= v3)
    {
        
    // With the first if, we know that v2 now must be the biggest
        
    biggest v2;
        if (
    v1 >= v3)
        {
            
    smallest v3;
            
    mid v1;
        }
        else
        {
            
    smallest v1;
            
    mid v3;
        }
    }
    else
    {
        
    // Since neither v1 or v2 is the largest, we know that v3 is the largest:
        
    biggest v3;
        if (
    v1 >= v2)
        {
            
    smallest v2;
            
    mid v1;
        }
        else
        {
            
    smallest v1;
            
    mid v2;
        }

    Hmm, yep that looks like it would work too.


  •  

    Posting Permissions

    • You may not post new threads
    • You may not post replies
    • You may not post attachments
    • You may not edit your posts
    •