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]
For more options, visit this group at 
http://groups.google.com/group/javaprogrammingwithpassion?hl=en

Reply via email to