| | |
Alright this loop problem is bugging me
![]() |
•
•
Join Date: Feb 2006
Posts: 21
Reputation:
Solved Threads: 0
I can't figure out a way to have this program continue to loop if you press any number other than 1 or 2.
Here's the test appilcation.
My problem is in the class below.
This is what i have so far. Im thinking of putting this in there replace the if statement.
if ( result == 0 )
continue;
if ( result >= 3 )
continue;
if ( failures == 0 )
continue;
if ( failures >= 3 )
continue;
if ( result == 1 ) // if result 1,
passes = passes + 1; // increment passes;
else ( failures == 2 ) // else result is not 1, so
failures = failures + 1; // increment failures
I can't figure it out for some reason
I did this in BASIC and I can't remember how.
Here's the test appilcation.
Java Syntax (Toggle Plain Text)
public class AnalysisTest { public static void main( String args[] ) { Analysis application = new Analysis(); // create Analysis object application.processExamResults(); // call method to process results } // end main } // end class AnalysisTest
My problem is in the class below.
This is what i have so far. Im thinking of putting this in there replace the if statement.
if ( result == 0 )
continue;
if ( result >= 3 )
continue;
if ( failures == 0 )
continue;
if ( failures >= 3 )
continue;
if ( result == 1 ) // if result 1,
passes = passes + 1; // increment passes;
else ( failures == 2 ) // else result is not 1, so
failures = failures + 1; // increment failures
I can't figure it out for some reason
I did this in BASIC and I can't remember how.
Java Syntax (Toggle Plain Text)
import java.util.Scanner; public class Analysis { public void processExamResults() { // create Scanner to obtain input from command window Scanner input = new Scanner( System.in ); // initializing variables in declarations int passes = 0; // number of passes int failures = 0; // number of failures int studentCounter = 1; // student counter int result; // one exam result (obtains value from user) // process 10 students using counter-controlled loop while ( studentCounter <= 10 ) { // prompt user for input and obtain value from user System.out.print( "Enter result (1 = pass, 2 = fail): " ); result = input.nextInt(); // if...else nested in while if ( result == 1 ) // if result 1, passes = passes + 1; // increment passes; else // else result is not 1, so failures = failures + 1; // increment failures // increment studentCounter so loop eventually terminates studentCounter = studentCounter + 1; } // end while // termination phase; prepare and display results System.out.printf( "Passed: %d\nFailed: %d\n", passes, failures ); // determine whether more than 8 students passed if ( passes > 8 ) System.out.println( "Raise Tuition" ); } // end method processExamResults } // end class Analysis
First thing you didn't do anything in your code so that it exit if anybody enter "result > 2" So it loops until 10 times and after that it exit.
Replace your existing code with this
Now it will exit from loop if any body enters other then 1 or 2.
Replace your existing code with this
if (result == 1) // if result 1,passes = passes + 1; // increment passes;else if(result == 2) {// else result is not 1, so failures = failures + 1; // increment failures} elsebreak;
•
•
Join Date: Feb 2006
Posts: 21
Reputation:
Solved Threads: 0
I just replaced break with continue.
Your code you gave me somehow commented the failures = failures +1 so at first it wasnt incrementing that.
I think I got it. Right?
Java Syntax (Toggle Plain Text)
if (result == 1) // if result 1, passes = passes + 1; // increment passes; else if(result == 2) { failures = failures + 1; // increment failures } else continue;
Your code you gave me somehow commented the failures = failures +1 so at first it wasnt incrementing that.
I think I got it. Right?
Last edited by Stoney; May 13th, 2007 at 11:11 pm.
•
•
Join Date: Apr 2007
Posts: 14
Reputation:
Solved Threads: 4
hi,
Maybe this code can help you.
package com.prom1;
import java.util.Scanner;
public class AnalysisTest {
public static void main(String args[]) {
Analysis application = new Analysis(); // create Analysis object
application.processExamResults(); // call method to process results
} // end main
} // end class AnalysisTest
class Analysis {
public void processExamResults() {
// create Scanner to obtain input from command window
// initializing variables in declarations
int passes = 0; // number of passes
int failures = 0; // number of failures
int studentCounter = 1; // student counter
int result; // one exam result (obtains value from user)
Scanner input = new Scanner(System.in);
// process 10 students using counter-controlled loop
while (studentCounter <= 10) {
// prompt user for input and obtain value from user
System.out.print("Enter result (1 = pass, 2 = fail): ");
result = input.nextInt();
// if...else nested in while
if (result == 1) {// if result 1,
passes = passes + 1; // increment passes;
studentCounter = studentCounter + 1;
continue;
} else if (result == 2) {
// else result is not 1, so
failures = failures + 1; // increment failures
studentCounter = studentCounter + 1;
continue;
} else {
System.out.println("that is wrong! Please input number again!");
continue;
}
// increment studentCounter so loop eventually terminates
} // end while3
// termination phase; prepare and display results
System.out.printf("Passed: %d\nFailed: %d\n", passes, failures);
// determine whether more than 8 students passed
if (passes > 8)
System.out.println("Raise Tuition");
} // end method processExamResults
} // end class Analysis
Maybe this code can help you.
package com.prom1;
import java.util.Scanner;
public class AnalysisTest {
public static void main(String args[]) {
Analysis application = new Analysis(); // create Analysis object
application.processExamResults(); // call method to process results
} // end main
} // end class AnalysisTest
class Analysis {
public void processExamResults() {
// create Scanner to obtain input from command window
// initializing variables in declarations
int passes = 0; // number of passes
int failures = 0; // number of failures
int studentCounter = 1; // student counter
int result; // one exam result (obtains value from user)
Scanner input = new Scanner(System.in);
// process 10 students using counter-controlled loop
while (studentCounter <= 10) {
// prompt user for input and obtain value from user
System.out.print("Enter result (1 = pass, 2 = fail): ");
result = input.nextInt();
// if...else nested in while
if (result == 1) {// if result 1,
passes = passes + 1; // increment passes;
studentCounter = studentCounter + 1;
continue;
} else if (result == 2) {
// else result is not 1, so
failures = failures + 1; // increment failures
studentCounter = studentCounter + 1;
continue;
} else {
System.out.println("that is wrong! Please input number again!");
continue;
}
// increment studentCounter so loop eventually terminates
} // end while3
// termination phase; prepare and display results
System.out.printf("Passed: %d\nFailed: %d\n", passes, failures);
// determine whether more than 8 students passed
if (passes > 8)
System.out.println("Raise Tuition");
} // end method processExamResults
} // end class Analysis
@deng_cen please use tags to insert code into post. It is the hash"#" sign in toolbar above the text area for reply.
I hate to look into Deitel&Deitel book to get you proper explanation to make it clear as I may get on rants to explain what the continue is for. In your case continue is not neccesary as you do not have any commands after continue in your if/else checks so you can remove them. Example bellow will show when continue statement is usefull
•
•
•
•
The continue statement, when executed in a while, for or do...while, skips remaining statements in the loop body and process with next iteration of the loop. In while and do...while statements, the program evaluates the loop-ontinuation test immidiately after the continue statement executes. In a for statement, the increment expression executes, then the program evalues the loop-continuation test.
Java Syntax (Toggle Plain Text)
for(int count =1; count <= 10; count++) { if(count == 5) continue; //this meessage will not be printed if count == 5 System.out.printf("%d", count); }
Learn to see in another's calamity the ills which you should avoid.
Publilius Syrus
(~100 BC)
LJC - London Java Community, Graduate & Undergraduate Software Development Community, JAVAWUG (Java Web User Group), The London Android Group
Publilius Syrus
(~100 BC)
LJC - London Java Community, Graduate & Undergraduate Software Development Community, JAVAWUG (Java Web User Group), The London Android Group
as long you don't do it as the code from deng_cen shows you alright
there is no reason for continue, no other commands in the if/else statement after continue
Java Syntax (Toggle Plain Text)
if (result == 1) {// if result 1, passes = passes + 1; // increment passes; studentCounter = studentCounter + 1; continue; }
there is no reason for continue, no other commands in the if/else statement after continue
Learn to see in another's calamity the ills which you should avoid.
Publilius Syrus
(~100 BC)
LJC - London Java Community, Graduate & Undergraduate Software Development Community, JAVAWUG (Java Web User Group), The London Android Group
Publilius Syrus
(~100 BC)
LJC - London Java Community, Graduate & Undergraduate Software Development Community, JAVAWUG (Java Web User Group), The London Android Group
yes you have it there, appropriate increment inside if/else statement
So studentCounter will be incremented only if the mark is 1 or 2
if (result == 1) {// if result 1,
passes = passes + 1; // increment passes;
studentCounter = studentCounter + 1;
}
else if (result == 2) {// if result 2,
failures = failures + 1;
studentCounter = studentCounter + 1;
continue;
}So studentCounter will be incremented only if the mark is 1 or 2
Learn to see in another's calamity the ills which you should avoid.
Publilius Syrus
(~100 BC)
LJC - London Java Community, Graduate & Undergraduate Software Development Community, JAVAWUG (Java Web User Group), The London Android Group
Publilius Syrus
(~100 BC)
LJC - London Java Community, Graduate & Undergraduate Software Development Community, JAVAWUG (Java Web User Group), The London Android Group
![]() |
Other Threads in the Java Forum
- Previous Thread: Tracing through a recursion program.
- Next Thread: Barcode printing in Java
| Thread Tools | Search this Thread |
-xlint actionlistener android api applet application array arrays automation bi binary blackberry block bluetooth character class client code compile compiler component consumer database desktop developmenthelp eclipse error fractal freeze ftp functiontesting game gameprogramming givemetehcodez graphics gui health html ide image integer j2me j2seprojects java javac javaee javaprojects jetbrains jni jpanel jtable julia learningresources lego linked linux list mac main map method methods mobile myregfun netbeans notdisplaying number online printf problem program project qt recursion researchinmotion rotatetext rsa scanner screen server set singleton sms sort spamblocker sql string swing system textfields threads time title tree tutorial-sample update variablebinding windows working xor






