2013-01-09 2 views
-1

il est censé être un jeu de mots devin, donnant 5 chances d'entrer une consonne avant de deviner le mot il n'est pas encore complet mais je Il faut savoir si cette partie du programme fonctionne bien. Je pense que les variables qui me donnent du mal sont des consonnes, voyelles, numéro Voici mon code: ps im très nouveau javaJ'ai une erreur: je ne trouve pas de symbole mais je pense que mes variables sont toutes déclarées et initialisées

public class julia1 { 

public static void main(String[] args) { 

    System.out.print("enter text to guess: "); 
    String w = Keyboard.readString(); 

    String asterix = ""; 

    for(int c = 0; c < w.length(); c++){ 
     if(w.charAt(c)==(' ')) asterix = asterix + " "; 
     else asterix = asterix + "*"; 
     } 
    System.out.println(asterix); 


    for (int trys = 0; trys <=5; trys++){ 
     String temp=""; 
     System.out.print("enter a consonant: "); 
     char c1 = Keyboard.readChar(); 
    for (int i = 0; i < w.length(); i++) 
    { 
     boolean character = false, vowel = false, consonant =false,     number= false; 
     if (w.charAt(i) >= 'a' &&w.charAt(i)<='z') 
     character = true; 

     if (w.charAt(i) >= 'A' && w.charAt(i)<='Z') 
     character = true; 

     if (character == true){ 
      switch (w.charAt(i)){ 
       case 'a': case 'A': case 'o': case 'O': 
       case 'e': case 'E': 
       case 'i': case 'I': 
       case 'u': case 'U': vowel = true; break; 

     if (c1 >= '0' && c1 <='9') 
      number=true;   
       default : consonant = true; 

      } 
     } 
    } 
     for(int c = 0; c < w.length(); c++){ 
      if((w.charAt(c)==c1) && (consonant == true)) 
      temp = temp + c1; 
      else if (vowel==true) 
        {temp = temp + asterix.charAt(c); 
        System.out.println("this is a vowel not consonant"); 
        } 
       else 
        temp = temp + asterix.charAt(c)&& number==true; 
        System.out.println("this is not a valid letter");} 

     asterix = temp; 
     System.out.println(asterix) ; 
} 



    } 
} 
+3

A quelle ligne vous obtenez cette erreur? Postez l'erreur du compilateur ici. –

+0

Quelle ligne est l'erreur? – RNJ

+0

if ((w.charAt (c) == c1) && (consonne == true)) symbole ^ : consonne emplacement variable: classe julia1 E: \ julia1 \ src \ julia1.java: 47: Erreur: ne peut pas trouver le symbole else if (voyelle == true) ^ symbole: voyelles variables lieu: classe julia1 E: \ julia1 \ src \ julia1.java: 52: erreur: ne peut pas trouver le symbole \t temp = temp + asterix .charAt (c) && nombre == vrai; \t^ symbole: nombre variable emplacement: classe julia1 3 erreurs –

Répondre

0

Un problème est que vous avez déclaré consonant dans une boucle for, puis essayez de l'utiliser dans un autre. Ceci n'est pas autorisé car la portée de consonant se termine à la fin de la boucle for où vous le déclarez.

6

Vous avez déclaré des variables boolean character = false, vowel = false, consonant = false, number = false; à l'intérieur for boucle, et essayer de les utiliser en dehors de cette boucle , à l'intérieur d'autres for boucle. C'est la cause de votre erreur de compilation.

+0

ok tnx beaucoup. Je vais essayer autre chose ... –

+2

@JuliaCaruana, ne pas essayer «autre chose». Il suffit de placer cette chaîne de ligne de code 'boolean character = false, voyelle = false, consonne = false, nombre = false; ** avant ** line' pour (int i = 0; i Andremoniy

+1

PS Malheureusement, ce n'est pas la dernière erreur dans votre code, mais cela va résoudre ce premier problème ... – Andremoniy

4

Ces variables:

boolean character = false, vowel = false, consonant = false, number = false; 

sont déclarés dans une boucle qui implique que leur portée est limitée à celle de la boucle. Lorsque vous essayez de les réutiliser dans la boucle suivante, ils n'existent plus. Soit vous voulez savoir quelle était leur valeur finale à la fin de la boucle précédente, auquel cas vous devez augmenter leur portée en déclarant avant la première boucle for. Ou vous ne pouvez pas et vous pouvez simplement les redéclarer dans la seconde boucle.

0

1)

boolean character = false, vowel = false, consonant =false, 

Vous êtes fin avec, mais il devrait être;

2) Définissez votre personnage, votre voyelle, votre consonne à l'extérieur de la boucle for, sinon cela ne concernera que la boucle for.

Si vous les définissez en tant que variables de classe, vous n'avez pas besoin d'initialiser à false et sa valeur par défaut est false.

public class julia1 { 

boolean character, vowel , consonant ; 

public static void main(String[] args) { 

3) temp = temp + asterix.charAt(c)&& number==true; ligne est invalide

Questions connexes