Logique

Résolu/Fermé
helloword95 - 29 mai 2017 à 13:46
 helloword95 - 30 mai 2017 à 00:07
Bonjour,

J'ai besoin de votre raisonnement.
Dans le code ci-dessous, je ne comprend pas pourquoi le code affiche 4 au lieu de 5.
Surtout que la boucle while recherche un chiffre, et qu'il y'en a pas.

Merci

	public static void main(String[] args) {
		boolean []t = {false, false, false, false, true};
		boolean e = false;
		int cpt = 0;
		try {
			while (!t[cpt]){
				cpt++;
			}
		} catch (ArrayIndexOutOfBoundsException ex) {
			System.out.println(cpt);
			e = true;
		}
		if (!e)
			System.out.println(cpt);
		
	}




1 réponse

ThEBiShOp Messages postés 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 1 566
29 mai 2017 à 14:05
Salut,

je ne connais pas vraiment java, mais comme ça, de but en blanc... je dirai que le while ne cherche pas un chiffre, mais regarde si chaque élément de ton tableau est faux, et dès qu'il trouve une valeur vrai, il sort de la bouche.
Il s'agit donc du 5ème élément, qui correspond à l'index 4 (étant donné que le 1er est 0)
0
KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 3 018
29 mai 2017 à 17:55
C'est ça, en gros le code recherche le nombre de false avant le premier true.

Mais c'est un code très moche...
0
ThEBiShOp Messages postés 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 1 566
29 mai 2017 à 18:00
Vu les interrogations, j'aurais tendance à dire qu'il faut reprendre les bases !
0
helloword95
30 mai 2017 à 00:07
Ah d'accord ! Merci je comprend mieux
0