Qual o erro nesse código?!

7 respostas
BlackLabel

Olá pessoal!!!

sou frequentador do forúm a um tempo, mas nunca postei…

estou com uma dúvida sobre um programa, não consigo corrigir esse erro que está me incomodando!!! :evil:

estou usando uma estrutura bem básica para o programa, mas aceito alterações :slight_smile:

O programa tem que ler todas as letras do alfabeto, e depois verificar e exibir somente as vogais!

Obrigadoooo!!!

import java.util.Scanner;
public class Alfabeto {

public static void main (String args [])	{

	Scanner sc = new Scanner (System.in);
	
	int i, j;
	string [] v = new String[26];
	string [] vogais = new String[5];
	
	j = 0;
	
	for (i=0; i<26; i++)
	{
		System.out.println ("Digite todas as letras do alfabeto na ordem correta!");
		v[i] = sc.next();
	}
	
	System.out.println ("As vogais do alfabeto sao ");
	
	for (i=0, i<26, i++)
	{
		if (v[i]="a" || v[i]="e" || v[i] ="i" || v[i] ="o" || v[i] ="u")
		{
			vogais [j] = v[i];
			j = j+1;
		}
	}
	for (j=1, j<=5, j++)
	{
		System.out.println ("- " +vogais [j] );
	}
	}
}

7 Respostas

alberto_ribeiro

boa tarde…

olha não executei seu código mas o que pude ver de cara é que o seu if está errado

if (v[i]="a" || v[i]="e" || v[i] ="i" || v[i] ="o" || v[i] ="u")

quando fazemos if temos que usar == e não =, o operador = é para atribuições…

[]'s

A
Boa tarde, fou postar os erros que for encontrando:

 String é com S maiusculo;

 no for usa-se ;(ponto e vírgula para separar os elementos);

 nos vetores como vai armazenar apenas 1 letra por posição pode usar char;

 um vetor sempre começa na posição 0;

 no caso do if para comarar se é vogal ou não, como estava armazenando numa String precisa fazer a comparação usando .equalsIgnoreCase(Valor a ser comarado),

 o char, por ser um tipo primitivo, pode usar o ==;
import java.util.Scanner;

public class Alfabeto {

	public static void main (String args []) {

		Scanner sc = new Scanner (System.in);

		int i, j = 0;
		char [] v = new char[26];
		char [] vogais = new char[5];

		for (i=0; i<26; i++){
			System.out.println ("Digite todas as letras do alfabeto na ordem correta!");
			v[i] = sc.next().toLowerCase().charAt(0);
		}

		System.out.println ("As vogais do alfabeto informadas sao ");

		for (i=0; i < 26; i++){
			if (v[i] == 'a' || v[i] == 'e' || v[i] == 'i' || v[i] == 'o' || v[i] == 'u')
			{
				vogais [j] = v[i];
				j++;
			}
		}
		for (j=0; j<5; j++){
			if(vogais[j] > 'z' || vogais[j] < 'a')break;//se não for uma letra para o laço
			System.out.println ("- " +vogais [j]);
		}
	}
}
edu_fernandes

Aparentemente o único erro que vejo é no ‘=’.
Você está tentando comparar strings de forma errada.
Resumidamente não se usa ‘=’ para comparar strings.

Você deve usar o:

.equals();

Espero ter ajudado.
Abraço e boa sorte.

Andre_Rosa

Como dizem, a etapa mais demorada da resolução é a parte da adivinhação, pois se os membros do fórum tiverem de adivinhar o erro retornado pelo compilador, a resolução do problema será muito mais demorada e difícil.

edu_fernandes

Não somente isso.
O uso da tag code para os iniciantes é lenda.
Rapaziada posta uma linguiça pra gente ler.
#tenso

Pessoal deveria antes de postar ler um pequenino tutorial de como postar corretamente.
Conselho ninguém aceita mesmo.
Falo apenas pra desencargo de consciência. Por que o que mais tem é isso.
Mas… nem por isso ficarei sem responder dúvidas, que eu saiba resposta, dos iniciantes. =D
Mas que ajuda… ajuda…
Forte abraço a todos.

BlackLabel
Alessandro09:
Boa tarde, fou postar os erros que for encontrando: 1º String é com S maiusculo; 2º no for usa-se ;(ponto e vírgula para separar os elementos); 3º nos vetores como vai armazenar apenas 1 letra por posição pode usar char; 4º um vetor sempre começa na posição 0; 5º no caso do if para comarar se é vogal ou não, como estava armazenando numa String precisa fazer a comparação usando .equalsIgnoreCase("Valor a ser comarado"), já o char, por ser um tipo primitivo, pode usar o ==;
import java.util.Scanner;

public class Alfabeto {

	public static void main (String args []) {

		Scanner sc = new Scanner (System.in);

		int i, j = 0;
		char [] v = new char[26];
		char [] vogais = new char[5];

		for (i=0; i<26; i++){
			System.out.println ("Digite todas as letras do alfabeto na ordem correta!");
			v[i] = sc.next().toLowerCase().charAt(0);
		}

		System.out.println ("As vogais do alfabeto informadas sao ");

		for (i=0; i < 26; i++){
			if (v[i] == 'a' || v[i] == 'e' || v[i] == 'i' || v[i] == 'o' || v[i] == 'u')
			{
				vogais [j] = v[i];
				j++;
			}
		}
		for (j=0; j<5; j++){
			if(vogais[j] > 'z' || vogais[j] < 'a')break;//se não for uma letra para o laço
			System.out.println ("- " +vogais [j]);
		}
	}
}

Segui o que vc passou e funfou...

import java.util.Scanner;
public class Alfabeto
	{
		public static void main (String args [])
		{
		Scanner sc = new Scanner (System.in);
		
		int i, j=0;
		char [] v = new char[26];
		char [] vogais = new char[5];
		
		for (i=0; i<26; i++)
		{
			System.out.println ("Digite todas as letras do alfabeto na ordem correta!");
			v[i] = sc.next().charAt(0);
		}
		
		System.out.println ("As vogais do alfabeto sao ");
		
		for (i=0; i<26; i++)
		{
			if (v[i]=='a' || v[i]=='e' || v[i]=='i' || v[i]=='o' || v[i]=='u')
			{
				vogais[j] = v[i];
				j++;
			}
		}
		for (j=0; j<=5; j++)
		{
			System.out.println ("- " +vogais[j] );
		}
		}
	}

Acho que está bom assim

Obrigado a todos que postaram, me ajudaram muito ;*

A

Boa noite, estive observando que na leitura do dado vc retirou o toLowerCase, isto serve para deixar todas as letras minúsculas, caso vc digite letras maiúsculas não irá funcionar.

Criado 15 de novembro de 2010
Ultima resposta 15 de nov. de 2010
Respostas 7
Participantes 5