Fonction de test impossible avec if et switch [Résolu]

wamdeus 46 Messages postés mercredi 2 janvier 2008Date d'inscription 4 décembre 2008 Dernière intervention - 2 mai 2008 à 16:52 - Dernière réponse : wamdeus 46 Messages postés mercredi 2 janvier 2008Date d'inscription 4 décembre 2008 Dernière intervention
- 3 mai 2008 à 14:37
Re tout le monde me voici avec un nouveau problème ; je suis toujours avec mon problème de grille;
j'aimerai
créer une fonction de remplissage pour mettre des lettres au hasard
dans ma grille donc je me suis dis que je vais faire un truc du genre
//
public void Remplir(){
for(int i=0;i<8;i++){
    for(int j=0;i<8;i++){
    if (grille.getMatrice()[i][j]=""){ // Error ::::: cannot convert from char to boolean
    grille.getMatrice()[i][j]=RandomRemplissage; //Random c'est un lettere au hasard ::
}}}}
je
me dis c'est normal qu'il puisse pas convertir boolean et char ...
alors comment comparer .??? avec un switch ?? déja fait; ca marche pas
non plus
//
switch(grille.getMatrice()[i][j]){
case "": grille.getMatrice()[i][j]=remplissage //Error ::: cannot convert from String to char
break;

   
Je ne sais pas quoi faire comment vous feriez vous ??? pas comme cela j'imagine

la seul chose qui arrive a la cheville de chuck norris ce sont ces chaussettes!!!
Afficher la suite 

Votre réponse

12 réponses

Meilleure réponse
extraman1 103 Messages postés lundi 8 septembre 2003Date d'inscription 26 décembre 2009 Dernière intervention - 3 mai 2008 à 14:12
3
Merci
Salut,

En effet, je suis resté sur le grille.getMatrice()[i][j].equals("")

Mais equals n'accepte que des String, donc il faut que tu écrives grille.getMatrice()[i][j] = = ' ';

A++ extraman1

Merci extraman1 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 98 internautes ce mois-ci

Commenter la réponse de extraman1
indiana_jules 750 Messages postés mardi 9 mars 2004Date d'inscription 23 décembre 2008 Dernière intervention - 2 mai 2008 à 16:56
0
Merci
Salut
si tu souhaites faire un switch sur des Strings, je te suggére d'installer la version 1.7 de Java (qui est en cours de réalisation) qui va permettre de faire cela. Sinon, il va falloir que tu fasses une magnifique imbrication de "if ...else if ...".

Voili voilà, et désolé

le monde a des idées : la preuve, c'est qu'il y en a de mauvaises
ne comprends pas tout, mais je parle de tout : c'est ce qui compte
Commenter la réponse de indiana_jules
wamdeus 46 Messages postés mercredi 2 janvier 2008Date d'inscription 4 décembre 2008 Dernière intervention - 2 mai 2008 à 17:33
0
Merci
je peux pas utiliser des if ou alors je les utilise mal ; j'aimerai faire une comparaison du style
if(grille.getMatrice()[i][j] = "";
mais il me dit que je peux pas convertir des boolean et des char je fais quoi ???
je trouve pas comment faire ca pourtant c'est quelque chose de boolean ; je demande si mon char est égal au un autre char ... je trouve pas mon erreur

la seul chose qui arrive a la cheville de chuck norris ce sont ces chaussettes!!!
Commenter la réponse de wamdeus
indiana_jules 750 Messages postés mardi 9 mars 2004Date d'inscription 23 décembre 2008 Dernière intervention - 2 mai 2008 à 17:44
0
Merci
Salut,
tu as écris : grille.getMatrice()[i][j] = ""

Or un "=" est un opéateur d'affectation. Donc c'est pour cela qu'il dit qu'il ne peut pas convertir cette ligne en booléen. Ensuite, si tue veux comparer deux caractéres, c'es très simple, c'est 'a' == 'b' (retour ==> false). en revanche, si tu fais cela sur deux Strings, l'opérateur "==" comparera leur référence !!!! Donc tu devras faire plutôt machaine.equals(uneAutreChaine)

Voili voilà

le monde a des idées : la preuve, c'est qu'il y en a de mauvaises
ne comprends pas tout, mais je parle de tout : c'est ce qui compte
Commenter la réponse de indiana_jules
wamdeus 46 Messages postés mercredi 2 janvier 2008Date d'inscription 4 décembre 2008 Dernière intervention - 2 mai 2008 à 17:50
0
Merci
J'ai vu cela sur un site et je test bien entendu mais un autre soucis surviens ^^ et oui je suis l'homme qui fera un programme avec le plus d'erreur possible ne vous inquiété pas ; je test
//
if(grille.getMatrice()[i][j].equals('')){
et j'obtient comme erreur :::: Invalid character constant :::::
}
le '' c'est 2 single quote car "" me dis que un char et un string ne se compare pas
donc je pige pas mon problème (suis-je attteint de débilité profonde où simplement d'une inattention aiguë??  Mystère Mystère)

la seul chose qui arrive a la cheville de chuck norris ce sont ces chaussettes!!!
Commenter la réponse de wamdeus
extraman1 103 Messages postés lundi 8 septembre 2003Date d'inscription 26 décembre 2009 Dernière intervention - 3 mai 2008 à 00:59
0
Merci
Salut,

Le fait que ce soit des char implique que '' (double simple cote) n'existe pas. Comparé au String où "" existe bien.

Donc ce que je te conseille c'est de bien faire ça : grille.getMatrice()[i][j].equals("")
et de transformer ta matrice en String au lieu de char.

A++ extraman1
Commenter la réponse de extraman1
wamdeus 46 Messages postés mercredi 2 janvier 2008Date d'inscription 4 décembre 2008 Dernière intervention - 3 mai 2008 à 10:36
0
Merci
Comment on fait pour faire ca .?? car chaque élément de ma matrice contient un char ce qui parait normal je l'ai creer comme ca :  matrice  = new char[8][8];
donc forcément elle ne prendra que des char
y'a t il un moyen de forcer mon "char" en "String" comme avec le (int) .???

la seul chose qui arrive a la cheville de chuck norris ce sont ces chaussettes!!!
Commenter la réponse de wamdeus
extraman1 103 Messages postés lundi 8 septembre 2003Date d'inscription 26 décembre 2009 Dernière intervention - 3 mai 2008 à 11:44
0
Merci
Salut,

Pour faire plus simple, initialise ta grille de cette manière :

matrice[i][j] = ' ';//SimpleQuote Espace SimpleQuote

Et ensuite tu teste : grille.getMatrice()[i][j].equals(' ') comme ça

extraman1
Commenter la réponse de extraman1
wamdeus 46 Messages postés mercredi 2 janvier 2008Date d'inscription 4 décembre 2008 Dernière intervention - 3 mai 2008 à 11:56
0
Merci
Moi y'a pas de soucis je veux bien l'initiliser mais je le fait où ????
parce que si je fais ça , pourrai-je encore placer des mots dans cette grille ensuite..??
je te met une partie de mon code de la class Mots (je pense que c'est la dedans qu'il faut que je le mette;
//class Mots

public class Grille {
    private char matrice[][];
    static protected Grille gri = new Grille();
    public Grille() {
      matrice = new char[8][8];
    }
    public char [][] getMatrice() {
        return matrice;
    }
    public char getValue(int x, int y) {
        return matrice[x][y];
    }
}

si ce n'est pas ici dis le moi je renverrai un autre morceau d'un autre code ( désolé de vous soualer avec ça mais disons que c'est mon avenir qui est en jeu ..)

la seul chose qui arrive a la cheville de chuck norris ce sont ces chaussettes!!!
Commenter la réponse de wamdeus
extraman1 103 Messages postés lundi 8 septembre 2003Date d'inscription 26 décembre 2009 Dernière intervention - 3 mai 2008 à 13:28
0
Merci
Salut,

Oui c'est bien ici écris ça :

    public Grille() {
      matrice = new char[8][8];

       for(int i = 0 ; i<8 ; i++){
            for(int j = 0 ; j<8 ; j++){
                   matrice[i][j] = ' ';
            }
       }
    }

Comme ça ta matrice est initialisé. Le test fonctionnera aussi. Et en plus tu peux changer la valeur quand tu veux ne t'inquiète pas.

A++ extraman1
Commenter la réponse de extraman1
wamdeus 46 Messages postés mercredi 2 janvier 2008Date d'inscription 4 décembre 2008 Dernière intervention - 3 mai 2008 à 13:48
0
Merci
bon aller plus qu'une erreur et après c'est fini lol!
lorsque je fais ce que tu me demande c'est a dire mettre des ' ' a toutes les valeur de ma mtrice ca marche mais lors de la comparaison
grille.getMatrice()[i][j].equals(' ')  et bah j'ai une petit erreur sur le ' '  il me met

:::::::::::::::::Cannot invoke equals(char) on the primitive type char ::::::::::::::::::::::::::::

ca marche pas sur des char .??? j'avoue que je comprend pas bien le sens de l'erreur pourtant on a le droit de comparer une lettre avec une autre ... je me suis dis aussi que je pouvais initiliser un char contenant l'espace en faisant
protected  char ' ' ; mais nan invalid ... je pige pas pourquoi vous pouvez m'expliquer si possible

la seul chose qui arrive a la cheville de chuck norris ce sont ces chaussettes!!!
Commenter la réponse de wamdeus
wamdeus 46 Messages postés mercredi 2 janvier 2008Date d'inscription 4 décembre 2008 Dernière intervention - 3 mai 2008 à 14:37
0
Merci
Merci beaucoup ca marche impec' maintenant merci pour le soutient mais soyez en sur je Reviendrais gné gné gné gné             !:/@\::/@\:!
                                                               __""__
la seul chose qui arrive a la cheville de chuck norris ce sont ces chaussettes!!!
Commenter la réponse de wamdeus

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.