Diskuze: problém s vyhodnocením prázdného vstupu

Java Java problém s vyhodnocením prázdného vstupu

Avatar
lukes90
Člen
Avatar
lukes90:

Ahoj.

Poradíte mi proč při zadání prázdného vstupu mi to nedělá nic, a provede všechny příkazy pro prázdný vstup až při zadání další hodnoty?

Díky

/*
 * File name: Lab06.java
 * Date:      2014/08/26 21:39
 * Author:    @author
 */


package cz.cvut.fel.pjv;
import java.util.ArrayList;
import java.util.Scanner;


public class Lab02 {



     public void homework() {
    TextIO input = new TextIO();
    int pocet=0,radek=0;
   double cislo=0,prumer=0,rozptyl=0,odchylka;
   ArrayList<String> pole = new ArrayList<String>();
   while(true){
     String zadane = input.getLine();

     if(zadane.isEmpty()){ System.err.println("End of input detected!"); }


     radek+=1;

     if (input.isDouble(zadane) || input.isInteger(zadane) || input.isFloat(zadane)){
            pole.add(zadane);
               pocet+=1;
            }
      else
            {
                System.err.println("A number has not been parsed from line " + radek);
            }


     if((pole.size()==10)||(zadane.isEmpty())&&(pole.size()>1)){


      for (int i = 0; i < pole.size(); i++)
            {

              cislo = cislo+Double.parseDouble(pole.get(i));

              prumer = cislo/pole.size();
            }


       for(int a = 0;a < pole.size();a++)
            {
              rozptyl=rozptyl+(Double.parseDouble(pole.get(a))-prumer)*(Double.parseDouble(pole.get(a)) - prumer);

            }
        odchylka = Math.sqrt(rozptyl/(double) pole.size());

        System.out.printf("%2d", pocet);
        System.out.print(" ");
        System.out.printf("%.3f", prumer);
        System.out.print(" ");
        System.out.printf("%.3f\n", odchylka);
        pocet =pocet+1;

       if(pocet==10){
           pocet=0;
       }
        cislo=0;
        rozptyl=0;
     }
   }
}





   public void start(String[] args) {

homework();
}}
/* end of Lab02.java */
 
Odpovědět 25. března 23:43
Avatar
vajkuba1234
Člen
Avatar
Odpovídá na lukes90
vajkuba1234:

Proc nepouzivas tridu Scanner? Zkousel jsi to projet debuggerem?

Nahoru Odpovědět 26. března 3:50
No hope, no future, JUST WAR! For world peace Israel must be DESTROYED!
Avatar
lukes90
Člen
Avatar
lukes90:

Je to úkol do školy a mám tam povinnost použít tuto třídu definovanou cvičícím.

/*
 * File name: TextIO.java
 * Date:      2014/08/26 21:45
 * Author:    @author
 */

package cz.cvut.fel.pjv;

import java.util.Scanner;

public class TextIO {

   public static boolean isInteger(String s) {
      boolean ret = true;
      try {
         Integer.parseInt(s);
      } catch(NumberFormatException e) {
         ret = false;

      }
      return ret;
   }

   public static boolean isFloat(String s) {
      boolean ret = true;
      try {
         Float.parseFloat(s);
      } catch(NumberFormatException e) {
         ret = false;
      }
      return ret;
   }

   public static boolean isDouble(String s) {
      boolean ret = true;
      try {
         Double.parseDouble(s);
      } catch(NumberFormatException e) {
         ret = false;
      }
      return ret;
   }

   public String getLine() {
      return stdin.hasNext() ? stdin.nextLine() : "";
   }

   public TextIO() {
      stdin = new Scanner(System.in);
   }
   Scanner stdin;
}

/* end of TextIO.java */
 
Nahoru Odpovědět 26. března 13:00
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.