An other possibility is:
   ....
   ArrayList<PersonData> persons = new ArrayList<PersonData>();
      for(int i = 0; i <= 5; i++) {

      Scanner input = new Scanner ( System.in );
      System.out.println();
      System.out.print( "Please enter the persons name (First Last) or
'stop' to end program: " ); // prompt
      String perName = input.nextLine();

      if ( perName.equals("stop") ) { //use equals instead of compareTo
here, then you don't have to compare two int values to get a boolean

         System.out.println( "Program ended." );
//       System.exit(0); //use this to exit the appliaction
         return; //use this to return from a method. in this case you are in
the main method and exit the application
      }
...

If you do it with a while or with a for-loop does not matter. You can always
achieve the same behaviour with both variants.

Regards
Tom

On Mon, Jan 11, 2010 at 6:59 PM, Dainis Brjuhoveckis <
[email protected]> wrote:

> I would recommend using "while (persons.size() <= 5 )" instead of "while
> (persons.size() < 6" ), because this way it is easier to see that 5 (not 6)
> persons are required.
>
>
> On Mon, Jan 11, 2010 at 7:48 PM, Craig Jensen <[email protected]>wrote:
>
>> Perfect!
>>
>> Thank you! I am still learning the available options to append to an array
>> (or otherwise) within Java (obviously) 'persons.size', duh!
>>
>> It works great.
>>
>> Craig
>>
>> On Mon, Jan 11, 2010 at 10:37 AM, Cecil Haertel III 
>> <[email protected]>wrote:
>>
>>> check out the added code and edited code below.
>>>
>>> Now you should move some of the other things out of that loop if this is
>>> way you would like to do it.
>>> There is no need to recreate some of those objects during your iteration.
>>>
>>> I think this is what you are talking about.
>>>
>>> On Mon, Jan 11, 2010 at 12:17 PM, Craig Jensen <[email protected]
>>> > wrote:
>>>
>>>> Ok, let me be more specific. The loop iterations must be five only and
>>>> end without a sentinel even though right now I have included a sentinel.
>>>> Plus, I cannot use a break.
>>>>
>>>> So I was not able to see a syntax that would accomplish this (that's why
>>>> I threw in the sentinel)
>>>>
>>>> Synopsis of the app (I have also included the source of the class with
>>>> the loop):
>>>>
>>>> * prompt for each of 7 different inputs
>>>> * once they are input, display the results including a product of two of
>>>> the inputs
>>>> * return and begin a new prompt all over.
>>>>
>>>>  public class AddBook // Modified to include requirement of positive num
>>>> entry for donations (amount of and number of)
>>>>  {
>>>>     // main method begins execution of java application
>>>>
>>>>     public static void main( String args[] )
>>>>     {
>>>>       ArrayList persons = new ArrayList(); // Array to handle multiple
>>>> entries of persons
>>>>    boolean stop = false; // This flag will control whether we exit the
>>>> loop below
>>>>    // Loop until user types "stop" as the person's name:
>>>>    while (persons.size() < 6 )
>>>>
>>>>        {
>>>>        // create scanner to obtain input from command window
>>>>        Scanner input = new Scanner ( System.in );
>>>>        System.out.println();  // a blank line
>>>>        System.out.print( "Please enter the persons name (First Last) or
>>>> 'stop' to end program: " ); // prompt
>>>>        String perName = input.nextLine(); // read persons name
>>>> /*
>>>>    if ( perName.compareTo("stop") == 0) // Check whether user indicated
>>>> to stop program
>>>>        {
>>>>        System.out.println( "Program ended." );
>>>>        stop = true;
>>>>        }
>>>>    else
>>>>        {
>>>>
>>> */
>>>
>>>>        // User did not indicate to stop, so continue reading info
>>>>        PersonData person;
>>>>        float donationNum; // first number, number of donations for the
>>>> year
>>>>        float donationAmount; // second number, amount per donation (yeah
>>>> I know it doesn't allow for different amounts).
>>>>        String Address;
>>>>        String City;
>>>>        String State;
>>>>
>>>>     System.out.print ( "Please enter the person's Address: " );
>>>>     Address = input.nextLine(); // Address validation and exception
>>>> catch needed
>>>>
>>>>     System.out.print ( "Please enter the person's City: " );
>>>>     City = input.nextLine(); // City validation needed
>>>>
>>>>     System.out.print ( "Please enter the person's State: " );
>>>>     State = input.nextLine(); // Validation for State needed
>>>>
>>>>     String zip = "12345";
>>>>
>>>>     //String zipCodePattern = "\\d{5}";
>>>>     System.out.print ( "Please enter the person's Zip in five number
>>>> format (88388): " );
>>>>     zip = input.nextLine();
>>>>     //while (zip != zipCodePattern) // my attempt at a zip validation,
>>>> gave me an infinite loop, will try again later
>>>>     //    {
>>>>     //    System.out.print( "The Zip code must be entered in the correct
>>>> format. " +
>>>>     //            "Please enter the Zip Code again: "); // Ask for
>>>> correct Zip entry
>>>>     //    System.out.println(zip.
>>>> matches(zipCodePattern));
>>>>     //    }
>>>>
>>>>     System.out.print( "Please enter number of donations: " ); // prompt
>>>> for donation number
>>>>     donationNum = input.nextFloat();
>>>>     while (donationNum <= 0) // validate for positive number
>>>>         {
>>>>         System.out.print( "The number of donations must be a positive
>>>> value. " +
>>>>                 "Please enter the number of donations again: " ); //
>>>> prompt for positive value for donations
>>>>         donationNum = input.nextFloat();
>>>>         }
>>>>     System.out.print( "Please enter donation amount: $" ); // prompt for
>>>> donation amount
>>>>     donationAmount = input.nextFloat();
>>>>     while (donationAmount <= 0) // validate for positive amount
>>>>         {
>>>>         System.out.print( "The donation amount must be a positive value.
>>>> " +
>>>>                 "Please enter the donation amount again: " ); // Prompt
>>>> again after invalid entry
>>>>         donationAmount = input.nextFloat();
>>>>         }
>>>>
>>>>     person = new PersonData(perName, donationNum, donationAmount,
>>>> Address, City, State, zip); // fields included in our person entries
>>>>         //yearlyDonations = donationNum * donationAmount; // multiply
>>>>         System.out.print( person.getName() ); // display person's name
>>>>         System.out.println(); // my way (until I learn better) of
>>>> formatting the output to single lines from here down ->
>>>>         System.out.print( person.getAddress() );
>>>>         System.out.println();
>>>>         System.out.print( person.getCity() );
>>>>         System.out.println();
>>>>         System.out.print( person.getState() );
>>>>         System.out.printf( ", "); // prob a better way to get a comma
>>>> between the state and zip... I'm learning
>>>>         System.out.print( person.getZip() );
>>>>         System.out.println();
>>>>         System.out.print( person.getName() );
>>>>         System.out.printf( "'s yearly donations is: $%,.2f\n",
>>>> person.getYearlyDonations() );  // display yearly donations
>>>>         persons.add(person);
>>>>         }
>>>>
>>> */
>>>
>>>>        }
>>>>    } // end method main
>>>> } // end class AddBook
>>>>
>>>
>>>
>>
>> --
>> To post to this group, send email to
>> [email protected]
>> To unsubscribe from this group, send email to
>> [email protected]<javaprogrammingwithpassion%[email protected]>
>> For more options, visit this group at
>> http://groups.google.com/group/javaprogrammingwithpassion?hl=en
>>
>
>
> --
> To post to this group, send email to
> [email protected]
> To unsubscribe from this group, send email to
> [email protected]<javaprogrammingwithpassion%[email protected]>
> For more options, visit this group at
> http://groups.google.com/group/javaprogrammingwithpassion?hl=en
>



-- 
Thomas Schiefer
Mobile: +43 650/7020481
-- 
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/javaprogrammingwithpassion?hl=en

Reply via email to