Structure conditionnelle [Résolu/Fermé]

Signaler
Messages postés
116
Date d'inscription
vendredi 9 novembre 2012
Statut
Membre
Dernière intervention
18 août 2013
-
Messages postés
116
Date d'inscription
vendredi 9 novembre 2012
Statut
Membre
Dernière intervention
18 août 2013
-
Bonsoir !

Je voulais simplement savoir s'il existait, en java, une fonction pour faire une action ou une autre aléatoirement selon une condition ! En clair, quelque chose qui traduirait ceci :

if(condition)
    {
     int random = 1 + (int) (Math.random() * 2);
     if (random =1)
         {
          blablabla
         }
    else 
         {
          blablabla
         }
    }


C'est juste histoire d'alléger le code, et histoire de nourrir ma curiosité ^_^


Merci, bonne soirée !

2 réponses

Messages postés
16338
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
17 mai 2021
2 830
Comme tu as fait c'est bien, mais en utilisant plutôt un vrai objet Random.

private static final Random random = new Random();

if (random.nextBoolean())
{
    // ...
}
else
{
    // ...
}
Messages postés
116
Date d'inscription
vendredi 9 novembre 2012
Statut
Membre
Dernière intervention
18 août 2013
6
Ça ne marche pas, j'ai "Illegal modifer parameter for random; only final is permitted." je ne sais pas ce que c'est ! Peux-tu m'éclaircir ?

Merci
Messages postés
16338
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
17 mai 2021
2 830
C'est parce que tel que je l'ai écrit il faut mettre la déclaration de l'objet Random en dehors de la méthode.

public class Classe
{
    private static final Random random = new Random();

    //...

    void methode()
    {
        // ...
        
        if (random.nextBoolean())
        {
            // ...
        }
        else
        {
            // ...
        }
        
        // ...
    }
}

On peut bien sûr l'utiliser comme n'importe quel autre objet, mais effectivement dans ce cas les mots-clés private et static ne peuvent pas être utilisés :

public class Classe
{
    //...

    void methode()
    {
        final Random random = new Random();
        
        // ...
        
        if (random.nextBoolean())
        {
            // ...
        }
        else
        {
            // ...
        }
        
        // ...
    }
}
Messages postés
116
Date d'inscription
vendredi 9 novembre 2012
Statut
Membre
Dernière intervention
18 août 2013
6
Je maîtrise pas vraiment les objets en fait ! Merci de ton aide en tous cas !