Thanks all.
Welcome to the Java Programming Forums
The professional, friendly Java community. 21,500 members and growing!
The Java Programming Forums are a community of Java programmers from all around the World. Our members have a wide range of skills and they all have one thing in common: A passion to learn and code Java. We invite beginner Java programmers right through to Java professionals to post here and share your knowledge. Become a part of the community, help others, expand your knowledge of Java and enjoy talking with like minded people. Registration is quick and best of all free. We look forward to meeting you.
>> REGISTER NOW TO START POSTING
Members have full access to the forums. Advertisements are removed for registered users.
Thanks all.
Last edited by SOK; September 27th, 2010 at 07:41 PM.
Use a loop that does not exit until the user says OK by entering the special value.not sure what to do to make my program do it all over without ending.
What does your code currently do? I see a while loop that tests for the ending value. Does that work as you want?
Please put your code inside of code tags. Info here: Java Forums - BB Code List
The while loop does work how I want it so far. Basically I enter an integer, if it is not equal to 0 then I keep enter odd and even integers. As soon as I enter 0, the program outputs how many odd and even numbers I chose, it could be 1,2,3,4,5,6 or more numbers. My problem is when I choose 0, it does output the amount of odd and even numbers, and does ask if I want to do it again, but then how I have my code the program ends after it asks me. I am not to sure how to get it to it all over again after I enter yes to continue.
Basically the program is to continue until I type no. So I could enter one odd number and then enter 0 get the below output
There are 1 odd numbers in the sequence
There are 0 even numbers in the sequence
Do you wish to enter another sequence (yes/no)?Yes
Program continues and asks me for an integer, and I keep entering until I type 0
I enter 5 odd and 2 even numbers output would be:
There are 5 odd numbers in the sequence
There are 2 even numbers in the sequence
Do you wish to enter another sequence (yes/no)?no
When I choose no the program should terminate.
I assume that the value of the askUser variable is false when the user enters: "no".
What does your code do when the value of askUser is false?
You didn't post the rest of the code in while loop. You seem to have changed the original code to something new and have left off some of it.
That is all the code I have right now. If I post the rest of it in the while loop, will it not always print out everything in it every time I enter a number? I am sure I tried putting it in all in the while loop and every time I entered a number it would print the odd and even and ask me if I wanted to enter another sequence, even though I did not type 0.
Can you post what is printed on the console when you execute the program?
Add some comments to that output showing where you want the program to work differently.
Also post the full code that you are using. What you have posted now does not compile.
The formatting of your code is very poor.
Please remove the extra {} and line up the {} that you have
and indent the code inside of the {} to show what level the code is nested at.
Last edited by Norm; September 26th, 2010 at 10:56 AM.
enter an integer:5
enter an integer:4
enter an integer:5
enter an integer:5
enter an integer:4
enter an integer:0
There are 3 odd numbers in the sequence
There are 3 even numbers in the sequence
Do you wish to enter another Sequence?(Yes/No)?Yes
enter an integer:5
program ends.
You will not be able to run the program. Our teacher gave us an input helper that they made so we do not have to error check, it does it for us.
That is why you see InputHelper.askUserForAnInt in the program.
I would have to send you the InputHelper file for you to compile the program.
I can replace the InputHelper without no problem.
But I can't help you with your code without seeing your code.
Why does the program end after the user enters the 5?
What code is supposed to prevent the exit of a loop? Is there a variable that needs to be reset?
The program is not supposed to end at 5, it just does, one of the issues I have.
Here is the spec that I need to do.
Functional Requirements of Finished Program
At the start of the program, the user is to be prompted with:
Enter an integer:
If the user types a non-zero integer, the program must respond with the prompt:
Enter an integer:
If the user types number 0 the program prints the number of odd and even integers in the sequence excluding 0 as follows:
There are XX odd numbers in the sequence.
There are XX even numbers in the sequence.
... where XX is replaced by the appropriate value.
After this the program must continue to prompt with:
Do you wish to enter another sequence (yes/no)?
The net effect is that the user is continually prompted to enter sequences of integers, until he or she wishes to stop. Note that the user is allowed to enter a sequence of 1, 2, 3, or more numbers. There is no limit to the length of the sequence. Note that the user is allowed to enter 1, or more sequences of numbers. Any integer is legal, including negative numbers.
I guess the main issue I am having is, the while loop works, and as soon as you type 0 the program stops to give you the number of odd and even numbers and then asks you if you want to enter another sequence. If you say no the program ends. The problem I have is how to I initialize it back into the loop, or do I need another loop, if I type yes to enter a new sequence how do I use that while loop again, since Java starts from top to bottom, how do I re-use that loop after saying yes to enter a new sequence so it does all the adding up again.
Just put all the code inside a loop.
boolean loopDone = false; While (!loopdone) { //Odd Even code here //if user says stop program then: loopDone = true; }
Thanks all.
Last edited by SOK; September 27th, 2010 at 07:40 PM.
//just move int oddNum = 0; int evenNum = 0; //below this line while (askUser == true) {
This is the answer for your problem.
try, this code it is going exactly what you want...
import java.io.*;
public class number
{
public static void main(String[] args)throws IOException
{
boolean askUser;
int enterNum;
int oddNum = 0;
int evenNum = 0;
DataInputStream d=new DataInputStream(System.in);
System.out.println("enter a number other than 0 -- : ");
enterNum = Integer.parseInt(d.readLine());
while (true)
{
if (enterNum % 2 == 0)
{
evenNum ++;
}
else
{
oddNum ++;
}
System.out.println("do you wish to continue--enter (true/false)");
askUser = Boolean.parseBoolean(d.readLine());
if (askUser == true)
{
System.out.println("enter a number: ");
enterNum = Integer.parseInt(d.readLine());
}
else
{
System.out.println("There are " + oddNum + " odd numbers in the sequence");
System.out.println("There are " + evenNum + " even numbers in the sequence");
System.exit(0);
}
}
}
}
thanks,
Pratul
@pratul
When you post code solving a students problem, can you add comments to it explaining how it works and why.
Also please put your code in code tags. Info here: Java Forums - BB Code List