Created
October 20, 2012 14:40
-
-
Save marioplumbarius/3923448 to your computer and use it in GitHub Desktop.
Programa em Java que imprime números inteiros pares entre dois valores X e Y - otimizado.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
* Faça um algoritmo que leia cinco pares de valores(a, b), todos inteiros e positivos, um de cada vez. | |
* Mostre os números inteiros pares entre a e b para cada par lido. | |
*/ | |
package lacosdowhile; | |
import java.util.Scanner; | |
public class Problema03A { | |
public static void main(String[] args){ | |
// criação da variável de entrada de dados | |
Scanner entrada = new Scanner(System.in); | |
//variáveis que receberão a entrada de números | |
int num1, num2; | |
// conta quantas vezes o usuário digitou o par de números (a, b) | |
int cont = 1; | |
// inicio -> DO...WHILE 5x | |
do{ | |
//usuário digita o número a | |
System.out.println("\n"+"Digite o número 1"); | |
num1 = entrada.nextInt(); | |
//usuário digita o número b | |
System.out.println("Digite o número 2"); | |
num2 = entrada.nextInt(); | |
// inicio -> if principal | |
if((num1 > 0) && (num2 > 0) && (num1 != num2) && (num1 != 1) && (num2 != 1)){ | |
// variáveis para tratar números impares e pares | |
// se o número A for par | |
int num2Par = num2 - 2; | |
//se o número B for par | |
int num1Par = num1 - 2; | |
//se o número A for impar | |
int num1Impar = num1 - 1; | |
//se o número B for impar | |
int num2Impar = num2 - 1; | |
// inicio -> A menor que B | |
if(num1 < num2){ | |
// se A e B forem par | |
if( (num1 % 2 == 0) && (num2 % 2 == 0) ){ | |
//enquanto A for menor que B + variável tratar par | |
while(num1 < num2Par){ | |
System.out.print((num1 = num1 + 2) + ", "); | |
} // fim -> while | |
// se A e B forem impares | |
} else if( (num1 % 2 == 1) && (num2 % 2 == 1) ){ | |
//enquanto A for menor ou igual a B + variável tratar impar | |
while(num1 <= num2Impar){ | |
System.out.print((num1 = num1 + 1) + ", "); | |
num1++; | |
} // fim -> while | |
// inicio -> se A for impar e B for par | |
} else if( (num1 % 2 == 1) && (num2 % 2 == 0)){ | |
//enquanto A for menor que B + variável tratar par | |
while(num1 <= num2Par){ | |
System.out.print((num1 = num1 + 1) + ", "); | |
num1++; | |
} // fim -> while | |
// se A for par e B for impar | |
} else if( (num1 % 2 == 0) && (num2 % 2 == 1) ){ | |
//enquanto A for menor que B + variável tratar impar | |
while(num1 < num2Impar){ | |
System.out.print((num1 = num1 + 2) + ", "); | |
} // fim -> while | |
} // fim -> último else if | |
// fim -> A menor que B | |
// inicio -> B menor que A | |
} else if(num2 < num1){ | |
// se B e A for par | |
if( (num2 % 2 == 0) && (num1 % 2 == 0) ){ | |
// enquanto B for menor que A + variável tratar par | |
while(num2 < num1Par){ | |
System.out.print((num2 = num2 + 2) + ", "); | |
} // fim -> while | |
// se B e A forem impares | |
} else if( (num2 % 2 == 1) && (num1 % 2 == 1) ){ | |
//enquanto B for menor e igual a A + variáel tratar impar | |
while(num2 <= num1Impar){ | |
System.out.print((num2 = num2 + 1) + ", "); | |
num2++; | |
} // fim -> while | |
//se B for impar e A for par | |
} else if( (num2 % 2 == 1) && (num1 % 2 == 0)){ | |
//enquanto B for menor e igual a A + variável tratar par | |
while(num2 <= num1Par){ | |
System.out.print((num2 = num2 + 1) + ", "); | |
num2++; | |
} // fim -> while | |
//inicio -> se B for par e A for impar | |
} else if( (num2 % 2 == 0) && (num1 % 2 == 1) ){ | |
//enquanto B for menor que A + variável tratar impar | |
while(num2 < num1Impar){ | |
System.out.print((num2 = num2 + 2) + ", "); | |
} // fim -> while | |
} //fim -> else if | |
} // fim -> B menor que A | |
} // fim -> if principal | |
cont++; | |
}while(cont <= 5); // fim -> DO...WHILE 5x | |
} // fim do MAIN | |
} // fim da classe |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
* Faça um algoritmo que leia cinco pares de valores(a, b), todos inteiros e positivos, um de cada vez. | |
* Mostre os números inteiros pares entre a e b para cada par lido. | |
*/ | |
package lacosdowhile; | |
import java.util.Scanner; | |
public class Problema03B { | |
public static void main(String[] args){ | |
// variável Scanner para entrada de dados | |
Scanner entrada = new Scanner(System.in); | |
// variáveis que receberão os dois números | |
int a, b; | |
// controla a quantidade de pares de números digitados | |
int cont = 0; | |
// inicio -> DO...WHILE | |
do{ | |
// 1ª entrada de dados, salva na variável a | |
System.out.println("Digite o número a"); | |
a = entrada.nextInt(); | |
// 2ª entrada de dados, salva na variável b | |
System.out.println("Digite o número b"); | |
b = entrada.nextInt(); | |
// condição para que os números sejam diferentes um do outro e positivos | |
if( (a != b) && (a > 0) && (b > 0) ){ | |
//1ª opção = se a for menor que b | |
while(a < b){ | |
// incremento para a variável a | |
a++; | |
// se a for PAR e b for IMPAR | |
if((a % 2 == 0) && (b % 2 == 1)){ | |
System.out.print(a + ", "); | |
// se b for PAR e a for IMPAR | |
} else if((b % 2 == 0) && (a % 2 == 0)){ | |
// tratamento da variável b | |
b = ((b++) - 1); | |
System.out.print(a + ", "); | |
} | |
} | |
//2ª opção = se b for menor que a | |
while(b < a){ | |
// incremento para a variável b | |
b++; | |
// se b for PAR e a for IMPAR | |
if((b % 2 == 0) && (a % 2 == 1)){ | |
System.out.print(b + ", "); | |
// se a for PAR e b for IMPAR | |
} else if((a % 2 == 0) && (b % 2 == 0)){ | |
// tratamento da variável a | |
a = ((a++) - 1); | |
System.out.print(b + ", "); | |
} | |
} | |
/* incremento da variável que controla a qtde vezes que | |
* o Do...WHILE foi executado | |
*/ | |
cont++; | |
// caso a e b sejam iguais OU sejam negativos | |
} else{ | |
System.out.println("Digite somente números positivos"); | |
} | |
}while(cont <= 5); | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package lacosdowhile; | |
import java.util.Scanner; | |
public class Teste { | |
public static void main(String[] args){ | |
// declaração de variáveis | |
Scanner ent = new Scanner(System.in); | |
int i = 0; | |
int x = 0, y = 0; | |
// loop | |
do{ | |
System.out.println("Digite o valor de x"); | |
x = ent.nextInt(); | |
System.out.println("Digite o valor de y"); | |
y = ent.nextInt(); | |
// enquanto x for menor ou igual a y | |
while(x <= y){ | |
// imprime somente números pares | |
if(x % 2 == 0){ | |
System.out.println(x); | |
} | |
// incremento de x | |
x++; | |
} | |
// incremento de controle | |
i++; | |
}while(i < 3); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment