Logique

Résolu
helloword95 -  
 helloword95 -
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 8411 Date d'inscription   Statut Contributeur Dernière intervention   1 566
 
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 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
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 8411 Date d'inscription   Statut Contributeur Dernière intervention   1 566
 
Vu les interrogations, j'aurais tendance à dire qu'il faut reprendre les bases !
0
helloword95
 
Ah d'accord ! Merci je comprend mieux
0