[RESOLVIDO]Ajuda com loop

6 respostas
J

Galera, to com um pequeno probleminha aqui. Eu estava querendo fazer um loop que me pedisse pra entrar novamente com os dados, nesse caso os números, para que ele realizasse as operações outra vez, e outra vez, até que eu encerre o programa.

Eu comecei a estudar o "for", mas não encontrei uma forma de fazer o que desejo. Espero que possam me ajudar.
Antes de terminar, queria saber o seguinte, quando o loop for realizado, voltando para a entrada de dados, as variáveis vão manter o valor anterior e somar o novo valor a elas, ou elas serão limpas para a entrada de novos dados?

Desde já, obrigado.

import java.util.Scanner;

public class Exercicio3 {
	
	public static void main(String[] args) {
		
		int num1, num2, resto;
		
		Scanner sc = new Scanner(System.in);
		
		System.out.println("Digite um número:");
		num1 = sc.nextInt();
		
		System.out.println("Digite outro número:");
		num2 = sc.nextInt();
		
		
		for( ; ; ) {
			
		System.out.println("\nOperações:\n");
		
		System.out.println("Soma:\n" + (num1+num2));
		
		System.out.println("Subtração:\n" + (num1-num2));
		
		System.out.println("Multiplicação:\n" + (num1*num2));
		
		resto = num1/num2;
		
		System.out.println("Divisão:\n" + resto);
				
		System.out.println("Divisão inteira:\n" + (resto%2));
		
		break;
		}
		

	}

}

6 Respostas

therodrigoagostin

Boa tarde,
para fazer ele pedir varias vezes os dados precisa colocar o for aqui:

for( ; ; ) {
   System.out.println("Digite um número:");
   num1 = sc.nextInt();
   System.out.println("Digite outro número:");
   num2 = sc.nextInt();
}

mas seria interessante utilizar um array pra poder listar depois as informações

jeandelima:
Galera, to com um pequeno probleminha aqui. Eu estava querendo fazer um loop que me pedisse pra entrar novamente com os dados, nesse caso os números, para que ele realizasse as operações outra vez, e outra vez, até que eu encerre o programa.

Eu comecei a estudar o "for", mas não encontrei uma forma de fazer o que desejo. Espero que possam me ajudar.
Antes de terminar, queria saber o seguinte, quando o loop for realizado, voltando para a entrada de dados, as variáveis vão manter o valor anterior e somar o novo valor a elas, ou elas serão limpas para a entrada de novos dados?

Desde já, obrigado.

import java.util.Scanner;

public class Exercicio3 {
	
	public static void main(String[] args) {
		
		int num1, num2, resto;
		
		Scanner sc = new Scanner(System.in);
		
		System.out.println("Digite um número:");
		num1 = sc.nextInt();
		
		System.out.println("Digite outro número:");
		num2 = sc.nextInt();
		
		
		for( ; ; ) {
			
		System.out.println("\nOperações:\n");
		
		System.out.println("Soma:\n" + (num1+num2));
		
		System.out.println("Subtração:\n" + (num1-num2));
		
		System.out.println("Multiplicação:\n" + (num1*num2));
		
		resto = num1/num2;
		
		System.out.println("Divisão:\n" + resto);
				
		System.out.println("Divisão inteira:\n" + (resto%2));
		
		break;
		}
		

	}

}
Ruttmann

Pra deixar seu programa em loop infinito, você pode criar uma variável do tipo boolean e setar ela em true por exemplo…

Aí você troca esse seu for por um while(enquanto), e codifica a seguinte condição: “Enquanto a variável ser true, faça o que estiver dentro do loop…”

Fica assim mais ou menos o seu código:

import java.util.Scanner;

public class Exercicio3 {
	
	public static void main(String[] args) {
		
		int num1, num2, resto;
		
		Scanner sc = new Scanner(System.in);
		
		boolean bool = true;
		
		while(bool == true) {
		System.out.println("Digite um número:");
		num1 = sc.nextInt();
		
		System.out.println("Digite outro número:");
		num2 = sc.nextInt();
		
			
		System.out.println("\nOperações:\n");
		
		System.out.println("Soma:\n" + (num1+num2));
		
		System.out.println("Subtração:\n" + (num1-num2));
		
		System.out.println("Multiplicação:\n" + (num1*num2));
		
		resto = num1/num2;
		
		System.out.println("Divisão:\n" + resto);
				
		System.out.println("Divisão inteira:\n" + (resto%2));
		}
		

	}

}

Com o for você faz loops também, mas tem que sempre determinar um número de instruções fixo. Já com o while utilizado com uma variável boolean você pode manter a instrução indefinidamente.

Do modo que você escreveu, elas vão ser sobrescritas com o novo valor que você define a cada iteração do loop.

marcelo.silva.java

Cara…vc quer que o laço repita em um determinado numeros de vezes…

usa-se o for

for(int x = 0; i<=10;i++){
System.out.println(x);
}

Pelo que eu vi… o usuário vai controlar o numero de vezes…

sendo de 0 a n…

use-se o comando

while…

espero ter ajudado

J

Galera, muito obrigado pela ajuda. Tudo o que vocês falaram aqui ajudou a clarear minha mente e eu consegui resolver o exercício da apostila do curso. Ficou assim:

import java.util.Scanner;

public class Exercicio3 {
	
	public static void main(String[] args) {
		
		int num1, num2, resto;
		
		Scanner sc = new Scanner(System.in);
		
		for( ; ; ) {
					
		System.out.println("Digite um número:");
		num1 = sc.nextInt();
		
		System.out.println("Digite outro número:");
		num2 = sc.nextInt();
		

		if (num1==0 || num2==0){
			
			System.out.println("Fim do programa!");
			
			break;
		}
		
		if (num1!=0 || num2!=0){
			
		System.out.println("\nOperações:\n");
		
		System.out.println("Soma:\n" + (num1+num2));
		
		System.out.println("Subtração:\n" + (num1-num2));
		
		System.out.println("Multiplicação:\n" + (num1*num2));
		
		resto = num1/num2;
		
		System.out.println("Divisão:\n" + resto);
				
		System.out.println("Divisão inteira:\n" + (resto%2));
		
		
		}
		
		
		
		}

	}

}

Valeu mesmo galera.

Ruttmann
jeandelima:
Galera, muito obrigado pela ajuda. Tudo o que vocês falaram aqui ajudou a clarear minha mente e eu consegui resolver o exercício da apostila do curso. Ficou assim:
import java.util.Scanner;

public class Exercicio3 {
	
	public static void main(String[] args) {
		
		int num1, num2, resto;
		
		Scanner sc = new Scanner(System.in);
		
		for( ; ; ) {
					
		System.out.println("Digite um número:");
		num1 = sc.nextInt();
		
		System.out.println("Digite outro número:");
		num2 = sc.nextInt();
		

		if (num1==0 || num2==0){
			
			System.out.println("Fim do programa!");
			
			break;
		}
		
		if (num1!=0 || num2!=0){
			
		System.out.println("\nOperações:\n");
		
		System.out.println("Soma:\n" + (num1+num2));
		
		System.out.println("Subtração:\n" + (num1-num2));
		
		System.out.println("Multiplicação:\n" + (num1*num2));
		
		resto = num1/num2;
		
		System.out.println("Divisão:\n" + resto);
				
		System.out.println("Divisão inteira:\n" + (resto%2));
		
		
		}
		
		
		
		}

	}

}

Valeu mesmo galera.

Que bom colega, conseguimos te ajudar rapidinho!

Mas só uma dica!

Você pode trocar o conteúdo da linha 27 por um simples else, que assim a sintaxe fica mais bonita.

Sempre procure utilizar o else após o uso de um if, assim você segue a lógica e não deixa um "se" pairando no ar sem o "senão" correspondente..

:wink:

J

Ruttmann:

Que bom colega, conseguimos te ajudar rapidinho!

Mas só uma dica!

Você pode trocar o conteúdo da linha 27 por um simples else, que assim a sintaxe fica mais bonita.

Sempre procure utilizar o else após o uso de um if, assim você segue a lógica e não deixa um “se” pairando no ar sem o “senão” correspondente…

:wink:

Valeu a dica, nem tinha prestado atenção a esse detalhe. Vou fazer isso agora :smiley:

Criado 15 de outubro de 2012
Ultima resposta 15 de out. de 2012
Respostas 6
Participantes 4