Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Didática muito confusa quando aplica para o Java no curso de Algoritmos 1.

Estou vendo o curso do Guilherme sobre "Algoritmos 1" aplicando para o Java e achei a didática muito confusa, inclusive, digita bem rápido pra uma aula básica. Já vi outro curso do Guilherme, que no caso foi de Ruby 1 e consegui entender de maneira bem clara.

4 respostas

Montei exatamente esse código, e quando fui rodar o código deu erro.

Código em baixo.

package br.com.alura.algoritmos;

public class TestaMenorPreco {
  public static void main(String[] orgs)
     double precos [] = new double[5]; 
     precos[0]1000000;
     precos[1]46000;
     precos[2]16000;
     precos[3]46000;
     precos[5]17000;

     int maisBarato = 0; 
     int atual = 0;

 for(int atual = 0; atual <= 4; atual++){ 
     if(precos[atual] < precos [maisBarato]){
         maisBarato = atual;


     }            

     }    
 System.out.println(maisBarato)
 System.out.println("O carro mais barato custa " + precos[maisBarato]);

}

O erro que deu foi

Exception in thread "main" java.lang.Error: Unresolved compilation problems: Syntax error on token ")", { expected after this token Syntax error on token "]", AssignmentOperator expected after this token Syntax error on token "]", AssignmentOperator expected after this token Syntax error on token "]", AssignmentOperator expected after this token Syntax error on token "]", AssignmentOperator expected after this token Syntax error on token "]", AssignmentOperator expected after this token Duplicate local variable atual Syntax error, insert ";" to complete Statement

at br.com.alura.algoritmos.TestaMenorPreco.main(TestaMenorPreco.java:4)

Perceba o erro no log

at br.com.alura.algoritmos.TestaMenorPreco.main(TestaMenorPreco.java:4)

isso indica que há um problema de sintaxe na linha 4, pelo que vi rapidamente, é que você esqueceu de abrir o escopo do método main (abrindo com chaves e fechando com chaves {} ) . Outro problema é na atribuição dos valores na sua lista de preços, você esqueceu de colocar o =, ficando assim :

precos[0] = 1000000;
.
.
.

Opa Gabriel, amanhã irei pegar isso só com mais calma. Pois hoje já estou desde as 8h da manhã estudando haha estava ficando cansado já. Amanhã retomo o ínicio das aulas de algoritmos. Mas antes de ter parado de estudar eu percebi o que eu não coloquei o "=" nos preços mesmo, mas o erro continuou. Mas desde já, obrigado! Amanhã darei a resposta se consegui resolver 100%. Amanhã é dia que os estudos realmente vão começar! Só brinquei com ruby essa semana pra sentir o gosto haha!

solução!

Eu recomendo que você utilize alguma IDE para programar em java, como o Eclipse por exemplo, esses erros que cometemos quando estamos cansados, geralmente erros de compilação, são todos acusados pela IDE. Encontrei outro problema no seu código que irá causar, dessa vez um erro em tempo de execução, é que a sua lista

double precos [] = new double[5];

possui 5 posições, e quando vamos atribuir valores a ela, no java esses índices começam a ser contados a partir da posição zero, ou seja, nessa linha

precos[5] = 17000;

irá estourar um error, pois a última posição do array de 5 posições é referenciado pelo índice 4, se você quiser atribuir um valor à última posição do array, deverá ser feito assim:

precos[4] = 17000;

Além desse erro de execução, pude verificar mais 2 erros de compilação, sua variável int atual está sendo declarada 2 vezes, além desse você esqueceu do ponto e virgula ; no final dessa linha

System.out.println(maisBarato)

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software