CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[Java] "Variable non initialisée" mais..

ScientificBird
ScientificBird
Niveau 9
12 février 2014 à 14:40:24

Bonjour, j'ai perdu ma licorne :

http://poneyxpress.com/photosalbumm/16366.jpg

Si vous la trouvez, arrêtez la drogue. Merci.

Ceci dit, bonjour à tous, je cherche à corriger une erreur que je ne saisit pas vraiment au sein de mon petit programme en Java, destiné à un pote (on se fixe des petits trucs à faire des fois, c'est fun et ça permet d'apprendre aussi). Je m'explique, enfin, non, je vous montre :

-----

Scanner sc;
sc = new Scanner(System.in);

int aut;
int seyg;
int value = sc.nextInt();

if (value == 0)
seyg = 5;
else if (value == 1)
seyg = 10;

if (value == 10)
aut = 5;
else if (value == 15)
aut = 0;

if (aut == seyg)
out.print ("I told you bro, I warned you about dat");

-----

Bon je m'arrête là. C'est donc un petit jeu de "réflexion ironiquement hasardeuse" le genre de truc simple à faire (autant à programmer qu'à gagner) mais tellement brouillon au niveau de ses données qu'on s’y paume vite.
Mon pote doit entrer les bonnes valeurs pour établir une égalité entre mes deux variables (lawl).

Comme vous le voyez ce n'est pas terminé, mais je rencontre quand même une merde. On m'indique que je n'ai pas initialisé les variables aut et seyg...bah en même c'est à l'utilisateur de le faire ! Donc wat ?

Merci à vous :)

XzZy
XzZy
Niveau 10
12 février 2014 à 14:50:49

Salut, le problème c'est que dans certains cas tes variables risquent de ne pas être initialisées au moment de la comparaison.

si value vaut ni 0, ni 1, seyg ne sera pas initialisé.
Idem pour l'autre.

ScientificBird
ScientificBird
Niveau 9
12 février 2014 à 15:37:21

D'accord, et dans ce cas, il faut quoi ? Que j'établisse une valeur de base, genre j'établis que seyg=0 dés le début, histoire qu'ensuite la variable prend une autre valeur ?

Ou il y a une méthode adaptée pour ça ?

bobby_35
bobby_35
Niveau 4
12 février 2014 à 16:22:08

Tu peux aussi utiliser des Integer à la place des int, que tu initialise à null.
Tu fais le test de fin uniquement si aut et seyg sont differents de null.

XzZy
XzZy
Niveau 10
12 février 2014 à 16:29:31

J'ai essayé de garder un max de ce que tu avais fait.

Scanner sc = new Scanner(System.in);
int aut = -1;
int seyg = -1;
int value = sc.nextInt();

if (value == 0)
seyg = 5;
else if (value == 1)
seyg = 10;

value = sc.nextInt();

if (value == 10)
aut = 5;
else if (value == 15)
aut = 0;

if (aut >= 0 && seyg >= 0 && aut == seyg)
System.out.println("I told you bro, I warned you about dat");

ScientificBird
ScientificBird
Niveau 9
12 février 2014 à 17:42:19

bobby_35 : Je vais essayer ça aussi :)

XzZy : Alors, je te remercie, ton exemple fonctionne !

Par contre, corrige moi si j'ai faux : On initialise les variables à -1, de ce fait, puisque le nombre entré par l'utilisateur sera forcément positif (j'ai modifié le programme pour ça déjà), la condition final ne compte vraiment que pour vérifier l'égalité, et agit donc comme ma 1er tentative !

J'ai juste ?

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Programmation
  • Création de sites web
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment