Salut

Envoyé par
treeselectif
- J'aimerai savoir combien d'instance dans ma classe T je crée ici ? deux instances ou un seul ?
1 2 3 4 5
|
T g,a,u;
g = new T();
T y=g
T p = new T(); |
Tu as 2 new, donc deux instances sont créees. Et il y a trois variables qui ont des références vers ces 2 instances (g et y sur une même instance, p sur une autre.

Envoyé par
treeselectif
- Si je souhaite déclarer un entier Z sur le plus grand espace de mémoire possible, faut t-il utiliser long Z ?
Il ne vaut mieux pas chercher à parler de plus grand espace possible. Mais juste de type. Un long est le type primitif permettant de stocker le plus grand entier possible. On peut gérer des nombres plus grands qui prennent donc plus de mémoire. Il y a par exemple la classe BigInteger, mais on pourrait aussi écrire sa propre classe pour gérer des nombres qui prennent l'espace mémoire qu'on veut.

Envoyé par
treeselectif
- J'ai toujours du mal avec les tableaux, par exemple si j'ai cette boucle for, est-ce que j'ai 10 cases ou 11 cases dans mon tableau ?
1 2 3 4
|
for(int i=0;i<=10;i++) (
tab(i) = 1
) |
11 ! C'est pour ça qu'il faut mieux utiliser la taille du tableau, comme ça plus de question à se poser sur le nombre d'itérations (on fait celles qui sont nécessaires et suffisantes) (tu remarqueras la correction de syntaxe que j'ai fait avec les crochets.
1 2 3 4
|
for(int i=0; i<tab.length; i++) {
tab[i] = 1;
} |
ou parcourir le tableau par for-each :
1 2 3 4 5 6
|
int[] tab = creerTableau();
// affiche tous les éléments du tableau
for(int i : tab) {
System.out.println(i);
} |

Envoyé par
treeselectif
Enfin dernière question , j'ai essayé de faire un mini compteur dans mon programme mais sa ne compile pas correctement, alors que en C ça fonctionne (code blocs).
1 2 3 4 5 6 7
|
int cpt= 0;
int i=0;
while(cpt<= i)
(
i = i +cpt;
) |
M'étonnerait que ça fonctionne en C (même en supposant que ça soit mis dans un fonction main. Déjà ce sont des accolades pour les blocs, pas des parenthèses
Donc le programme en Java ce serait (j'ai juste ajouté un affichage en sortie standard pour qu'on puisse voir ce qu'il se passe) :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
public class MonProgramme {
public static void main(String[] args) {
System.out.println("Le programme démarre.");
int cpt= 0;
int i=0;
while(cpt<= i) {
System.out.println("Avant : "+i);
i = i +cpt;
System.out.println("Après : "+i);
}
System.out.println("Le programme se termine.");
}
} |
Mais l'autre souci c'est que tu as une boucle infinie : en effet, cpt et i vallent 0, et 0+0=0, donc i ne varie pas, il reste à zéro, donc est toujours >= à 0 (cpt), donc la boucle tourne indéfiniment.
On pourrait faire :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| public class MonProgramme {
public static void main(String[] args) {
System.out.println("Le programme démarre.");
int cpt= 10;
int i=1;
while( i<=cpt ) {
System.out.println("Avant : "+i);
i = i + 1;
System.out.println("Après : "+i);
}
System.out.println("Le programme se termine.");
}
} |
qui afficherait :
Le programme démarre.
Avant : 1
Après : 2
Avant : 2
Après : 3
Avant : 3
Après : 4
Avant : 4
Après : 5
Avant : 5
Après : 6
Avant : 6
Après : 7
Avant : 7
Après : 8
Avant : 8
Après : 9
Avant : 9
Après : 10
Avant : 10
Après : 11
Le programme se termine.
Partager