Java Forums

Main Menu
Home
Today's Posts
FAQ
Search
Contact Us

Java Network
Linux Archive
Java Tips
Java Tips Blog

Sponsored Links





Welcome to the Java Forums.

You are currently viewing our boards as a guest which gives you limited access to view most discussions and access our other features. By joining our free community, you will:

  • have access to post topics
  • communicate privately with other members (PM)
  • not see advertisements between posts
  • have the possibility to earn one of our surprises if you are an active member
  • access many other special features that will be introduced later.

Registration is fast, simple and absolutely free so please, join our community today!

If you have any problems with the registration process or your account login, please contact us.

Reply
 
LinkBack Thread Tools Display Modes
  #1 (permalink)  
Old 01-18-2008, 06:57 PM
Member
 
Join Date: Jan 2008
Posts: 39
mcal is on a distinguished road
For Loop problem
I have a problem with the for loop. I can't figure it out why, but the loop is not working, since the counter isn't incremented and its not doing anything that is found in the for loop. Do i have something wrong? Thanks for the help.
I am using a binary file. I am making a quiz, and so i stored a set of questions on this binary file ( these questions i have wrote them in the java source code using DataOutputStream.

Code:
import java.awt.*; import java.awt.event.*; import java.awt.event.ActionListener.*; import java.util.*; import java.io.*; import javax.swing.*; import java.util.Calendar; import java.awt.image.*; import javax.imageio.*; public class GQ extends JFrame implements ActionListener { private static final int FRAME_WIDTH = 1024; private static final int FRAME_HEIGHT = 768; private static final int FRAME_X_ORIGIN = 0; private static final int FRAME_Y_ORIGIN = 0; private JLabel prompt; private JPanel image; private JLabel response; private JMenu fileMenu; private JMenu HelpMenu; private JMenu OptionMenu; AnswerStore answerStore = new AnswerStore(); boolean timeForMore; public GQ() { Container contentPane; contentPane = getContentPane(); JButton button1, button2, button3, button4, button5; setSize (FRAME_WIDTH, FRAME_HEIGHT); setTitle("Quiz"); setLocation(FRAME_X_ORIGIN, FRAME_Y_ORIGIN); button2 = new JButton("Rivers"); button4 = new JButton("Quit"); contentPane.add(button2); contentPane.add(button4); button2.addActionListener(this); button2.setActionCommand("b2"); button4.addActionListener(this); button4.setActionCommand("b4"); setDefaultCloseOperation(EXIT_ON_CLOSE); } public static void main (String[] args) { GQ frame = new GQ(); frame.setVisible(true); new GQ(); GQ File = new GQ(); } String ac = event.getActionCommand(); String[] questions = null; String[] answers = null; if(ac.equals("b2")) { questions = readFile("rivers.txt"); answers = answerStore.riverAnswers; } else if (ac.equals("b4")) { System.exit(0); } askQuestions(questions, answers); } public void stopAndShowResults() { timeForMore = false; // used for countdown. } private String[] readFile(String path) { StringBuilder sb = new StringBuilder(); String separator = "\n"; String question1, question2, question3; try{ File aFile = new File( "rivers.dat" ); // create an output stream to the file FileInputStream aFileInStream = new FileInputStream ( aFile ); // create a data output stream to the file output stream DataInputStream aDataInStream = new DataInputStream ( aFileInStream ); // read data from file question1 = aDataInStream.readUTF(); question2 = aDataInStream.readUTF(); question3 = aDataInStream.readUTF(); aFileInStream.close(); JOptionPane.showInputDialog(null,question1); JOptionPane.showInputDialog(null,question2); JOptionPane.showInputDialog(null,question3); } catch( FileNotFoundException e ) { System.out.println( e.getMessage() ); System.exit(1); } catch(IOException e) { System.out.println( e.getMessage() ); System.exit(1); } return sb.toString().split("\\n"); } public void askQuestions(String[] questions, String[] answers) { int count = 0; int point = 0; for(int j = 0; j < questions.length; j++) { // this loop isn't working timeForMore = true; Random generator = new Random(); int randomIndex = generator.nextInt(questions.length); String input = JOptionPane.showInputDialog(null, questions[randomIndex]); // shows questions in a dialog box together with input line if(answers[randomIndex].equalsIgnoreCase(input)) count++; // incrementing counter if entered answer is correct point++; if(!timeForMore) break; } JOptionPane.showMessageDialog(null, "You answered " + count + " out of " + questions.length + " questions correctly."); int percent = (count*100)/questions.length; JOptionPane.showMessageDialog(null, "Your Geography Quiz score is " + percent + " % "); class AnswerStore { String[] riverAnswers = { "Gorges", "Meanders", "Levees", "Yes", "Less Economic Developed Countries", "crescent shaped lakes", "More Economic Developed Countries", "No", "River Discharge", "No", "", "", "" }; } }

Last edited by mcal : 01-19-2008 at 09:17 AM.
Bookmark Post in Technorati
Reply With Quote
Sponsored Links
  #2 (permalink)  
Old 01-24-2008, 05:56 AM
gibsonrocker800's Avatar
Senior Member
 
Join Date: Nov 2007
Location: New York
Posts: 143
gibsonrocker800 is on a distinguished road
Send a message via AIM to gibsonrocker800
Two things i noticed (i didn't read any of your other code, just the for loop).

Code:
if(answers[randomIndex].equalsIgnoreCase(input)) count++; // incrementing counter if entered answer is correct point++;
point++ is never happening because you didnt put brackets for the if statement

Code:
if(!timeForMore) break;
Since you made it so that the loop says:
Code:
timeForMore = true;
The break statement will never be executed because the boolean timeForMore is always true in the iteration.

This might not have solved your problem, but this may lead to the lack of logic errors later. =]
__________________
//Haha javac, can't see me now, can ya?
Bookmark Post in Technorati
Reply With Quote
Sponsored Links
Reply


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Comparing Images shaungoater Advanced Java 0 03-17-2008 12:38 PM
Problem comparing three numbers gammaman New To Java 1 02-09-2008 07:43 PM
Comparing null problem thirdy_veritech New To Java 2 02-06-2008 10:46 AM
comparing Feng New To Java 2 11-23-2007 11:40 AM
Comparing JavaWebFrameworks pegitha Web Frameworks 1 05-18-2007 08:23 PM


All times are GMT +3. The time now is 02:24 PM.


VBulletin, Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.
Copyright ©2006 - 2007, www.java-forums.org