If else imbriqué qui ressort toujours un resultat nul
Résolu
Gary
-
Gary -
Gary -
Bonjour,
mon programme analyse les lignes d'un fichier log et fais des test sur les valeurs
LA fonction retourne toujours null ... je ne comprends pas
mon programme analyse les lignes d'un fichier log et fais des test sur les valeurs
this.commande = this.getCommand();
public String getCommand(){
String commande =null;
String UpOrDownLink = null;
String LogicalChannel = null;
String TransportChannel = null;
if (this.isType("MU")){
UpOrDownLink = this.getField(24);
LogicalChannel = this.getField(25);
TransportChannel = this.getField(26);
if (UpOrDownLink == "D" & LogicalChannel == "DC" ) {
commande = "DL-DCCH-Message ";
}else if (UpOrDownLink == "U" & LogicalChannel == "DC" ) {
commande = "UL-DCCH-Message ";
}else if (UpOrDownLink == "D" & LogicalChannel == "CC" ) {
commande = "DL-CCCH-Message ";
}else if (UpOrDownLink == "U" & LogicalChannel == "CC" ) {
commande = "UL-CCCH-Message ";
}else if ( LogicalChannel == "PC" ) {
commande = "PCCH-Message ";
}else if ( LogicalChannel == "BC" & TransportChannel == "FA" ) {
commande = "BCCH-FACH-Message ";
}else if ( LogicalChannel == "BC" & TransportChannel == "B" ) {
commande = "BCCH-BCH-Message ";
}
}
return commande;
}
LA fonction retourne toujours null ... je ne comprends pas
3 réponses
-
-
Bonjour,
le plus simple c'est de voir les valeurs que vous testez avant votre if.
-
Bonjour,
Si la fonction retourne null, c'est parce que le code ne rentre dans aucune de vos conditions, et vous n'avez apparemment pas de conditions else ...
Dans un premier temps il faut essayer d'afficher toutes les variables dans la méthode pour comprendre ce qui ne va pas. Peut être que le this.isType est autre que "MU" ou, qu'un ou plusieurs des this.getfield() pose problème.
Je remarque aussi que vous utilisez l'opérateur bitwise '&' plutot que l'opérateur logique '&&'. Je n'arrive pas à comprendre l'intérêt d'évaluer les deux conditions même si la partie gauche est fausse.
Peut être serait-il plus simple d'utiliser '&&' qui va évaluer la condition de gauche dans un premier temps et si elle est fausse va directement continuer au bloc suivant.