Structure conditionnelle

Résolu/Fermé
Vitaldix Messages postés 116 Date d'inscription vendredi 9 novembre 2012 Statut Membre Dernière intervention 18 août 2013 - 14 avril 2013 à 20:14
Vitaldix Messages postés 116 Date d'inscription vendredi 9 novembre 2012 Statut Membre Dernière intervention 18 août 2013 - 14 avril 2013 à 20:44
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

KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
14 avril 2013 à 20:23
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
{
    // ...
}
0
Vitaldix Messages postés 116 Date d'inscription vendredi 9 novembre 2012 Statut Membre Dernière intervention 18 août 2013 6
14 avril 2013 à 20:29
Ç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
0
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
14 avril 2013 à 20:36
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
        {
            // ...
        }
        
        // ...
    }
}
0
Vitaldix Messages postés 116 Date d'inscription vendredi 9 novembre 2012 Statut Membre Dernière intervention 18 août 2013 6
14 avril 2013 à 20:44
Je maîtrise pas vraiment les objets en fait ! Merci de ton aide en tous cas !
0