Boucle imbriquée en Java

En programmation informatique une boucle est un bloc d'instructions qui est exécuté plusieurs fois, le programme cesse d'exécuter les instructions de la boucle (sort de la boucle) seulement lorsque la condition de sortie est respectée. En java les boucles sont mis en place par les structures itératives for, while, et do while.
Pour résoudre certains problèmes de programmation une boucle simple ne suffit pas, quelques fois, il faut utiliser une boucle imbriquée (ou deux boucles imbriquées) pour parvenir à une solution. Par exemple pour faire un tri croissant ou décroissant des éléments d'un tableau, l'utilisation d'une boucle imbriquée est nécéssaire.
Le code Java ci-dessous est celui d'un programme java de tri croissant des éléments d'un tableau utilisant une boucle imbriquée:

import java.util.Scanner;
public class TriCroissant {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int tab[]=new int[5],min=0;
System.out.println("Entrer les elements du tableau:");
//boucle simple:
for(int i=0;i<5;i++){
tab[i]=sc.nextInt();
} //fin boucle simple
//boucle principale:
for(int j=0;j<5;j++){
//boucle imbriquée:
for(int i=0;i<5;i++){
if(tab[i]>tab[j]){
min=tab[j];
tab[j]=tab[i];
tab[i]=min;
}
}//fin de la boucle imbriquée
}//fin de la boucle principale
System.out.println("Voici les elements du tableau triés dans l'ordre croissant:");
for(int i=0;i<5;i++){
System.out.println(tab[i]);
}
}
}

Voici un exemple d'exécution du programme:

interface graphique

Un programme en java qui affiche les 3 nombres entiers qui suivent un nombre entier donné

import java.util.Scanner;
public class Nbre_Entiers {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Entrer un nombre entier :");
int nbre = sc.nextInt();
System.out.println("Voici les 3 nombres entiers qui suivent "+nbre+":");
for(int i=1;i<4;i++){
nbre=nbre+1;
System.out.println(nbre);
}
}
}

Exemple d'utilisation:

interface graphique

Un programme en java qui affiche tous les diviseurs communs de deux nombres entiers naturels

import java.util.Scanner;
public class Nbre_Entiers {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Entrer le premier nombre entier :");
int nbre = sc.nextInt();
System.out.println("Entrer le second nombre entier :");
int nbre2 = sc.nextInt();
System.out.println("Voici les diviseurs communs de "+nbre+" et "+nbre2+":");
for(int i=1;i<=nbre;i++){
if(nbre%i==0 && nbre2%i==0){
System.out.println(i);
}
}
}
}

Exemple d'utilisation:

interface graphique

Un programme en java qui affiche tous les diviseurs d'un nombre entier qui sont des nombres premiers

import java.util.Scanner;
public class Nbre_Entiers {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Nbre_Entiers nombre=new Nbre_Entiers();
System.out.println("Entrer un nombre entier :");
int nbre = sc.nextInt();
System.out.println("Voici les diviseurs de "+nbre+" qui sont des nombres premiers: ");
for(int i=1;i<=nbre;i++){
if(nbre%i==0 && nombre.nbreprem(i)){
System.out.println(i);
}
}
}
public boolean nbreprem(int nb){
int p=0;
for(int j=1;j<=nb;j++){
if(nb%j==0){
p=p+1;
}
}
if(p==2){
return true;
}
else{
return false;
}
}
}

Exemple d'utilisation:

interface graphique

Un programme en java pour convertir une durée de jours en années, mois, semaines et jours

import java.util.Scanner;
public class Conversion {
public static void main(String[] args) { Scanner sc = new Scanner(System.in);
int ans=0,mois=0,semaines=0,jours;
System.out.println("Considérons que:");
System.out.println("1 semaine = 7 jours");
System.out.println("1 mois = 30 jours");
System.out.println("1 ans = 365 jours");
System.out.println("Entrer un nombre de jours > 7:");
jours = sc.nextInt();
while(jours<=7){
System.out.println("Entrer un nombre de jours > 7:");
jours = sc.nextInt();
}
if(jours>7){
if(jours/365>=1){
ans=jours/365;
jours=jours%365;
}
if(jours/30>=1){
mois=jours/30;
jours=jours%30;
}
if(jours/7>=1){
semaines=jours/7;
jours=jours%7;
}
System.out.println("La conversion donne:");
//si ans=1 on affiche 1 an au lieu de 1 ans
if(ans==1){
System.out.println(ans+" an "+mois+" mois "+semaines+" semaines et "+jours+" jours");
}
//si semaines=1 on affiche 1 semaine au lieu de 1 semaines
else if(semaines==1){
System.out.println(ans+" ans "+mois+" mois "+semaines+" semaine et "+jours+" jours");
}
//si jours=1 on affiche 1 jour au lieu de 1 jours
else if (jours==1){
System.out.println(ans+" ans "+mois+" mois "+semaines+" semaines et "+jours+" jour");
}
else{
System.out.println(ans+" ans "+mois+" mois "+semaines+" semaines et "+jours+" jours");
}
}
}
}

Exemple d'utilisation:

interface graphique