Algoritmos

20 respostas
V

Bom galera estou tentando fazer um algoritmo que vai somando os numeros inteiros inseridos
e quando eu digitar “X” ele encerra e me tras o resultado final, no caso a entrada seria por uma String correto?
depois faria a conversão para um “int” conrreto?
Quem puder me ajudar ficaria muito grato.
Obs:fiz tudo direto

*/
    public static void main(String[] args) {
        
        Scanner s=new Scanner (System.in);      
        System.out.print("digite um inteiro");      
        String a=s.next();
           
        int soma=0;      
     int b=Integer.parseInt(a);
       while (a!="x"){
         soma+=b;
         
     
}
     System.out.println(soma);
    }
}

20 Respostas

pedroroxd

o que é esse b?
Não entendi direito oq vc qr fazer

peczenyj

não compare strings com o operador != , use o metodo equals

V

É assim eu vou digitando numeros inteiros Ex:2+3+5+4 e etc.
qdo eu digitar “X” ele me trais o resultado dos numeros q digitei nesse caso 14
entenderam??

tgmarinho

estou tentando fazer aqui, mas acho q deve utilizar um array.

tgmarinho

Villa:
É assim eu vou digitando numeros inteiros Ex:2+3+5+4 e etc.
qdo eu digitar “X” ele me trais o resultado dos numeros q digitei nesse caso 14
entenderam??

  • onde esta sendo guardado o 2,3,5 e 4?
V

entendi tenho q ir guardando esses valores em uma variavel certo?
mais num seei ond passo a string para int pq passo inteiros e utilizo a letra x tbm

tgmarinho

Villa:
entendi tenho q ir guardando esses valores em uma variavel certo?
mais num seei ond passo a string para int pq passo inteiros e utilizo a letra x tbm

cara to tentando fazer aq, to quebrando a cabeça…

mas antes de tudo mesmo

tem q fazer

faça

digite um nr
guarda nr

enquanto, pq senão ele não vai digitar outro nr!

to tentando fazer com do/while e switch

Jauns

Faltou so vc somar dentro do while.

Scanner s = new Scanner(System.in);
		String a = "0";
		int soma = 0;

		while (!a.equalsIgnoreCase("x")) {
			System.out.println("digite um inteiro");
			a = s.next();
			if (!a.equalsIgnoreCase("x"))
				soma += Integer.parseInt(a);
		}
		System.out.println("Sua soma: "+soma);
	}
V

Demorou to tentando aqui tbm
qq coisa tamos aii

tgmarinho
Jauns:
Faltou so vc somar dentro do while.
Scanner s = new Scanner(System.in);
		String a = "0";
		int soma = 0;

		while (!a.equalsIgnoreCase("x")) {
			System.out.println("digite um inteiro");
			a = s.next();
			if (!a.equalsIgnoreCase("x"))
				soma += Integer.parseInt(a);
		}
		System.out.println("Sua soma: "+soma);
	}

puts cara! ta certinho mesmo ^^
nao tava sabendo !a.equalsIgnoreCase("x")

aff

vlw mto bom

V

Nossa brother é verdade tah mtoo bomm
Obs tgMarinho vlw pela ajuda tbm

Brigadão a tds

Jauns

Dei uma melhorada no seu codigo, para tratamento de String.

import java.io.IOException;
import java.util.Scanner;

public class Soma {

	public int trata(String q) throws IOException {
		try {
			int a = Integer.parseInt(q);
			return a;

		} catch (NumberFormatException e) {
			if (!q.equalsIgnoreCase("x")) {
				System.out
						.println("O usuário não digitou numeros inteiros, sendo assim será retornado o valor | 0 |");
			}
			return 0;
		}
	}

	public static void main(String[] args) throws IOException {
		Soma ss = new Soma();
		Scanner s = new Scanner(System.in);
		String a = "0";
		int soma = 0;

		while (!a.equalsIgnoreCase("x")) {
			System.out.println("digite um inteiro");
			a = s.next();
			
			soma += ss.trata(a);
		}
		System.out.println("Sua soma: " + soma);
	}

}
V

Putz mano tah perfeito, mais brother como eu estou começando nem to trantando os err os ainda pq num entendo mto entaum no caso da primeira forma para mim eh melhor

mais muito obrigado pela força!!

V

Janus
Só uma dúvida esse trecho code[/code]
seria se “a” for diferente de “x” eu continuo o código eh isso??e pq naum posso utilizar “!=” e pq o “!” antes do a???

V

Villa:
Janus
Só uma dúvida esse trecho code[/code]
seria se “a” for diferente de “x” eu continuo o código eh isso??e pq naum posso utilizar “!=” e pq o “!” antes do a???

pedroroxd

O “!” seguinifica: “O contrário”
Quando vc coloca ele antes de uma expressão, quer dizer que é o contrário dela.

Ex.:

while (true) { //enquanto for true } while (!true) { //enquanto for diferente de true (false) }
Ou seja, nessa expressão:

if (a.equalsIgnoreCase("x")) { //se a for igual a "x" maíusculo ou minúsculo } if (!a.equalsIgnoreCase("x")) { //se a for diferente de "x" maíusculo ou minúsculo }

tgmarinho

legal o java aceitar essa expressão, nessa escrita! =)

V

Hum entendi mais pq eu utiliso (a.equalsIgnoreCase("x") com igual e não o “==”??

pedroroxd

comparação de strings usa .equals…

Trebloc

Pra comparar objetos a gente usa o equals e Strings também são objetos.

No caso delas, esse equalsIgnoreCase foi criado pra comparar independente de ser maiúscula ou minúscula:

String a = "Teste";
String b = "TESTE";

a.equals(b); // FALSE
a.equalsIgnoreCase(b); // TRUE
Criado 28 de março de 2010
Ultima resposta 28 de mar. de 2010
Respostas 20
Participantes 6