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 4 of 4
  1. #1
    New to the CF scene
    Join Date
    Mar 2008
    Posts
    2
    Thanks
    1
    Thanked 0 Times in 0 Posts

    I need help with my for loop in this array

    Ok well, I can't get my code to work. Also, please remember that this is just my draft so it isnt pretty. I will fix it up later so please look at it. The thing I want to do is look into the array for a time that matches what the user entered and return the toString() of that one. I know there is something wrong with my for loop but I cant figure how to fix it. please help. here is what i have so far:
    Code:
    import javax.swing.JOptionPane;
     
    public class Runner 
    {
        public static void main (String[] args)
        {
            String timeStr;
            int time, again, optiStr;
            Inbound[] in = new Inbound[25];
            
            
             in[0]=new Inbound ("",0,"On Time num0");
             in[1]=new Inbound ("",2,"On Time num1");
             in[2]=new Inbound ("",3,"Delayed num2");
             in[3]=new Inbound ("",4,"On Time");
             in[4]=new Inbound ("",5,"On Time");
             in[5]=new Inbound ("",6,"Canceled");
             in[6]=new Inbound ("",1,"Canceled num6");
             in[7]=new Inbound ("",8,"On Time");
             in[8]=new Inbound ("",9,"Delayed");
             in[9]=new Inbound ("",10,"On Time");
             in[10]=new Inbound ("",11,"Delayed");
             in[11]=new Inbound ("",12,"On Time");
             in[12]=new Inbound ("",13,"Delayed");
             in[13]=new Inbound ("",14,"On Time");
             in[14]=new Inbound ("",15,"On Time");
             in[15]=new Inbound ("",16,"On Time");
             in[16]=new Inbound ("",17,"Canceled");
             in[17]=new Inbound ("",18,"On Time");
             in[18]=new Inbound ("",19,"On Time");
             in[19]=new Inbound ("",20,"Canceled");
             in[20]=new Inbound ("",21,"On Time");
             in[21]=new Inbound ("",22,"Delayed");
             in[22]=new Inbound ("",23,"On Time");
             in[23]=new Inbound ("",24,"Cancled");
             in[24]=new Inbound ("",7,"On Time num24");
            
            do{
                timeStr = JOptionPane.showInputDialog ("In military time, what hour do you want?");
                time = Integer.parseInt(timeStr);
                if (time<=0 || time>24)
                 JOptionPane.showMessageDialog (null, "Error");
                 
                 optiStr = JOptionPane.showConfirmDialog (null, "If you want Incoming flights click Yes, but if not click No");
                 
                if (optiStr==JOptionPane.YES_OPTION)
                {
    //(ok this is the for loop i am talking about )
                    for (int index = 0; index < in.length; index++)
                    {
                      if ( time == Inbound.getTime())
                   {
                   JOptionPane.showMessageDialog (null, Inbound.tostring());  //return the time asked for
    //               else JOptionPane.showMessageDialog (null, "else"); 
                   }
                 }
                }//temp return else if failed to find time asked for
    //             else
    //               if (optiStr==JOptionPane.CANCEL_OPTION)
    //                 JOptionPane.showMessageDialog(null,"Canceled");
     //              else
    //                {Outbound.run();
    //                JOptionPane.showMessageDialog (null, "outbound");}//temp
                  again=JOptionPane.showConfirmDialog(null, "Try again?");
            }
            while (again==JOptionPane.YES_OPTION);
        }
    }

  • #2
    Regular Coder
    Join Date
    Jan 2008
    Location
    Willow Grove, PA
    Posts
    169
    Thanks
    1
    Thanked 27 Times in 27 Posts
    Sorry, I don't mean to sound like a smart alec, but you know there are only 24 hours in a day right?

    If I'm wrong then please correct me but there is no military time that is 24.
    11pm = 23 and midnight = 0.

    But in any event, try this:

    Make sure you have the correct capitalization of toString(). And you need to pull the instances out in each loop to do something with them.
    Code:
    // (ok this is the for loop i am talking about )
    for (int index = 0; index < in.length; index++) {
    	Inbound inB = in[index];
    	if (time == inB.getTime()) {
    		JOptionPane.showMessageDialog(null, inB.toString());
    		// return the time asked for
    		// else JOptionPane.showMessageDialog (null, "else");
    	}
    }
    Last edited by sobrien79; 03-26-2008 at 03:51 PM. Reason: removed stars and replaced with alec due to content filter. Sorry :)

  • Users who have thanked sobrien79 for this post:

    rumble14 (03-27-2008)

  • #3
    New to the CF scene
    Join Date
    Mar 2008
    Posts
    2
    Thanks
    1
    Thanked 0 Times in 0 Posts
    Yea but there was an offset by one so i was just messing around. i guess i forgot to delete it. thx for your help but i just figured out what i did wrong. i accidentally set the getTime() as a static method. lol thx for the help

  • #4
    Regular Coder
    Join Date
    Jan 2008
    Location
    Willow Grove, PA
    Posts
    169
    Thanks
    1
    Thanked 27 Times in 27 Posts
    No prob. We've all done those mistakes.


  •  

    Posting Permissions

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