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]
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
--
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