Skip to content

Instantly share code, notes, and snippets.

@marioluan
Created October 20, 2012 14:40
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save marioluan/3923448 to your computer and use it in GitHub Desktop.
Save marioluan/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.
/*
* 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
/*
* 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);
}
}
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