NOVINKA! E-learningové kurzy umělé inteligence. Nyní AI za nejlepší ceny. Zjisti více:
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

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

V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
lukes90
Člen
Avatar
lukes90:25.3.2016 23:43

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.3.2016 23:43
Avatar
vajkuba1234
Člen
Avatar
Odpovídá na lukes90
vajkuba1234:26.3.2016 3:50

Proc nepouzivas tridu Scanner? Zkousel jsi to projet debuggerem?

Nahoru Odpovědět
26.3.2016 3:50
No hope, no future, JUST WAR!
Avatar
lukes90
Člen
Avatar
lukes90:26.3.2016 13:00

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.3.2016 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.