akikos
Επιφανές μέλος
Ο Ανδρέας αυτή τη στιγμή δεν είναι συνδεδεμένος. Επαγγέλεται Η.Μ.Μ.Υ. και μας γράφει απο Αθήνα (Αττική). Έχει γράψει 11,864 μηνύματα.
27-05-14
14:54
Bάλε το βιβλίο στη βιβλιοθήκη και δες το tutorial. Ακολούθησε το βήμα βήμα υλοποιώντας ότι κάνει.
Σημείωση: Το μήνυμα αυτό γράφτηκε 9 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
akikos
Επιφανές μέλος
Ο Ανδρέας αυτή τη στιγμή δεν είναι συνδεδεμένος. Επαγγέλεται Η.Μ.Μ.Υ. και μας γράφει απο Αθήνα (Αττική). Έχει γράψει 11,864 μηνύματα.
17-05-14
23:10
Για να συγκρίνεις τις τιμές δυο string μεταξύ τους μη χρησιμοποιείς το == αλλά τη μέθοδο equals p.x. answers.equals("Obama"). Πρόσθεσε ακόμα ένα στοιχείο σε κάθε πίνακα που θα έχει την σωστή απάντηση και τροποποίησε το κώδικα έτσι ώστε να μην επαναλβάνεις το κώδικα με μικροδιαφορές κάθε φορά.Είμαι αρχάριος,οπότε συγχωρείστε με για όποιο χάος δείτε.
Εχω μάθει while,if,switch και κάποια βασικά μεθόδων + constructor.
Θέλω να κάνω σαν κουίζ που έχει πολλαπλές απαντήσεις...
Είδα κάπου οτι για να το κάνω αυτό πρέπει να χρησιμοποιήσω arrays, είδα και γι'αυτά οπότε...ωστόσο δεν νομίζω να έκανα καλή χρήση των arrays στο πρόγραμμα που θα δείτε.
Το ΒΑΣΙΚΟ ΠΡΟΒΛΗΜΑ είναι οτι δεν μου πιάνει για σωστές τις απαντήσεις.
πχ είτε γράψω "b" είτε "Obama" (χωρις εισαγωγικα) στη πρώτη ερώτηση, δεν αυξάνεται ο μετρητης για τις σωστές απαντήσεις που έχω βάλει(correct++).
Γιατί? (ή αν έχετε εναλλακτικό τρόπο -αλλά οχι πολύ προχωρημένο- για τη καταμέτρηση των απαντήσεων)
Όποιες προτάσεις έχετε και διορθώσεις, δεκτές!Code:package quizAdvanced; import java.util.*; public class quizAdvanced { public static void main(String[] args) { Scanner input = new Scanner(System.in); String[] a = new String[5]; String[] b = new String[5]; String[] c = new String[5]; int count = 0; String answer; int correct = 0; int wrong = 0; a[0] = "G. Bush Jr."; a[1] = "Obama"; a[2] = "Lincoln"; a[3] = "Washington"; a[4] = "Papandreou"; b[0] = "Apple"; b[1] = "Motorola"; b[2] = "Lenovo"; b[3] = "Sony"; b[4] = "Google"; c[0] = "Doha"; c[1] = "Boha"; c[2] = "Al Khtor"; c[3] = "Loha"; c[4] = "Dammam"; while (count < 3) { switch (count) { case 0: System.out.printf("%s\n \na) %s\nb) %s\nc) %s\nd) %s\ne) %s\n %s\n", "Who is the president of U.S.A?", a[0],a[1],a[2],a[3],a[4], "Enter the answer: "); answer = input.nextLine(); if (answer == "b" || answer == "Obama") ++correct; else ++wrong; break; case 1: System.out.printf("%s\n \na) %s\nb) %s\nc) %s\nd) %s\ne) %s\n %s\n", "Which company of the following created Android software?", b[0],b[1],b[2],b[3],b[4], "Enter the answer: "); answer = input.nextLine(); if (answer == "e" || answer == "Google") ++correct; else ++wrong; break; default: System.out.printf("%s\n \na) %s\nb) %s\nc) %s\nd) %s\ne) %s\n %s\n", "What's the capital of Qatar?", c[0],c[1],c[2],c[3],c[4], "Enter the answer: "); answer = input.nextLine(); if (answer == "a" || answer == "Doha") ++correct; else ++wrong; break; } ++count; } System.out.println("Results: "); if (correct == 3) System.out.println("Congrats! 3 out of 3."); else if (correct == 2) System.out.println("Good,but you could be better."); else System.out.println("You failed!"); System.out.println(correct +" - " + wrong); } }
Θα είχα περιέργεια πως γίνεται οι ερωτήσεις (αν είχα 100 ας πούμε αντι για 3) να ανακατεύονται καθώς και οι απαντήσεις! Δηλαδή σε μια ερώτηση να μην είναι η σωστή απάντηση πάντα στο b,να πηγαίνει και σε άλλη θέση.
Ευχαριστώ
Σημείωση: Το μήνυμα αυτό γράφτηκε 9 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.