116 votes

Attribuer une valeur à une variable dans une instruction if

Je me demandais s'il était possible d'attribuer une valeur à une variable à l'intérieur d'un opérateur conditionnel, de la manière suivante :

if((int v = someMethod()) != 0) return v;

Existe-t-il un moyen de faire cela en Java ? Car je sais que c'est possible en while mais je ne sais pas si je m'y prends mal pour l'instruction if ou si ce n'est tout simplement pas possible.

2voto

Karthik Rk Points 668

Oui, c'est possible de le faire. Considérez le code ci-dessous :

public class Test  
{        
    public static void main (String[] args)       
    {       
        int v = 0;          
        if ((v=dostuff())!=0)            
        {          
            System.out.printf("HOWDY\n");          
        }             
    }                
    public static int dostuff()       
    {             
        //dosomething              
        return 1; 
    }       
}          

J'espère que cela répondra à votre question.

1voto

user2256686 Points 245

Vous pouvez assigner une variable à l'intérieur de if mais vous devez d'abord le déclarer

1voto

IndoKnight Points 1269

Oui, il est possible d'assigner à l'intérieur d'un contrôle conditionnel if. Mais, votre variable devrait déjà avoir été déclarée pour assigner quelque chose.

0voto

PermGenError Points 26936

Parce que je sais que c'est possible dans certaines conditions, mais je ne suis pas sûr si si je m'y prends mal pour l'instruction if ou si ce n'est tout simplement pas possible.

INDICE : Quel type de condition "while" et "if" doit être utilisé ?

Si l'on peut le faire avec l'instruction while, on peut aussi le faire avec l'instruction if, car les deux attendent une condition booléenne.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X