Java não consegue encontrar uma variável criada logo acima

Pessoal preciso de uma ajuda urgente, estou fazendo um programinha para ordenar valores recebidos como argumento e calcular a media desses valores (independende da quantidade de argumentos), só que por algum motivo eu não consigo somar esses valores porque o Netbeans retorna que não consegue achar a variável “i” que se refere a posíção do argumento.
Por favor me salvem!

 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;

/**
 *
 * @author Allyson
 */
public class Questao03 {
    public static void main(String[] args){
        int soma = 0;
        double mediaaritimetica = 0.0;
       
        System.out.print("Programa: Questao03\n" +
                "Aluno: Allyson Caetano da Silva\n");
        System.out.print("Entrada: ");
        try {
            BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
            String texto = reader.readLine();
            args = texto.split(" ");
            int[] intArgs = new int[args.length];
            for(int i=0;i<args.length;i++)
                intArgs[i] = (Integer.parseInt(args[i]));
                
                soma = soma + (Integer.parseInt(args[i]));
                Arrays.sort(intArgs);
                System.out.println("Saída: ");
                System.out.print("\tOrdem crescente: ");
                for(int j=0;j<=intArgs.length;j++)
                    System.out.print(intArgs[j]+" ");
                double quantidadeargumentos = args.length;
                mediaaritimetica = soma / quantidadeargumentos;
                
        } catch (IOException e){
            e.printStackTrace();
        }
        System.out.println("Media aritimética: "+ mediaaritimetica);
        
    }
}

Tente colocar esse código dentro do main:

[code] int soma = 0;
double mediaaritimetica = 0.0;

     System.out.print("Programa: Questao03\n" +
             "Aluno: Allyson Caetano da Silva\n");
     System.out.print("Entrada: ");
     try {
         BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
         String texto = reader.readLine();
         args = texto.split(" ");
         int[] intArgs = new int[args.length];
         for(int i=0;i<args.length;i++)  {
             intArgs[i] = (Integer.parseInt(args[i]));

             soma = soma + (Integer.parseInt(args[i]));
             Arrays.sort(intArgs);
             System.out.println("Saída: ");
             System.out.print("\tOrdem crescente: ");
             for(int j=0;j<=intArgs.length;j++) {
                 System.out.print(intArgs[j]+" ");
             }
             double quantidadeargumentos = args.length;
             mediaaritimetica = soma / quantidadeargumentos;
         }
     } catch (IOException e){
         e.printStackTrace();
     }
     System.out.println("Media aritimética: "+ mediaaritimetica);[/code]

Ele estava acusando o erro mencionado porque você não colocou as chaves depois do primeiro for…>

for está sem chave…

Python programmer detected… 8)

Veja o link:
http://www.guj.com.br/posts/list/147991.java

O seu for possui mais de 1 linha, quando for mais de 1 linha coloque o código do for entre chaves

Isso é tecnicamente viável. Entretanto, pela convenção de códigos da Sun, pede-se para sempre usar chaves, mesmo no caso do código ter uma linha só. Alega-se que omitir as chaves pode deixar o código sujeito a erros (eu particularmente discordo, mas enfim… convenção é convenção).

http://java.sun.com/docs/codeconv/html/CodeConventions.doc6.html#430

Concordo plenamente, e sempre utilizo o for com chaves mesmo sendo somente 1 linha
Porém é possível executar sem as chaves quando for 1 linha, ou até 2 linhas caso a 1 linha seja um if

Ex.:

for(Pessoa p : pessoaList) if ( "TESTE".equals( p.getNome() ) return p; return null;

Isso é possível porém nunca faça isso kkkkk, sempre utilize as chaves.

É que, na verdade, não é em "linhas" que ele conta, mas em comandos. Seu for tem apenas 1 comando, que é o if. Esse if, por sua vez, tem apenas 1 comando, que é o return.

Eu, particularmente, prefiro um código sem as chaves do que com. Na Siemens, tinhamos uma convenção sem as chaves. Era adaptação da convenção do Java para ficar mais legível para programadores C++ (com chaves na linha de baixo, por exemplo).

Aqui no GUJ, procuro seguir a convenção oficial do Java.

Mas claro, colocavamos chaves quando poderia ficar confuso de quem é o else, no caso de ifs aninhados:

if (x == y) { if (x > y) { maior = true; } else { //Sem chaves, seria difícil saber de quem é esse else. maior = false; } } else //Ou esse igual = true; }

Galera valeu pelo help ai…
mais eu já tinha tentado essa solução…
assim como o amigo FabricioPJ postou… tentei até colocar o codigo q ele passou aqui… só q quando coloco as chaves atrapalho a lógica…

olha aqui um exemplo de saída quando coloco as chaves:

Entrada: 41 15 20 35
Saída:
Exception in thread “main” java.lang.ArrayIndexOutOfBoundsException: 4
at Questao03.main(Questao03.java:34)
Ordem crescente: 0 0 0 41 Java Result: 1

se puder me ajudem ai…

Sem a parte da soma funciona perfeitamente, conforme código abaixo:


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;

/**
*
* @author Allyson
*/
public class Questao03 {
public static void main(String[] args){


    int soma = 0;
    double mediaaritimetica = 0.0;

    System.out.print("Programa: Questao03\n" +
            "Aluno: Allyson Caetano da Silva\n");
    System.out.print("Entrada: ");
    try {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        String texto = reader.readLine();
       args = texto.split(" ");
       int[] intArgs = new int[args.length];
       for(int i=0;i<args.length;i++)  
          intArgs[i] = (Integer.parseInt(args[i]));

         // soma = soma + (Integer.parseInt(args[i]));
          Arrays.sort(intArgs);
          System.out.println("Saída: ");
          System.out.print("\tOrdem crescente: ");
          for(int i=0;i<intArgs.length;i++)
              System.out.print(args[i]+" ");
          
      //   double quantidadeargumentos = args.length;
        //   mediaaritimetica = soma / quantidadeargumentos;
       
  } catch (IOException e){
       e.printStackTrace();  
   }
 //  System.out.println("Media aritimética: "+ mediaaritimetica);

     }
 }