Stránka 1 z 1

Java a neuzavřený scanner

Napsal: 26 říj 2014 17:56
od Marethyu_1
Ahoj, mám takový problém, není to sice nic světoborného a ani kvůli tomu ten program nepadá, ale eclipse mi tu toho pořád vyhazuje vykřičník a nevím co s tím...

Kód: Vybrat vše

import java.util.*;

public class Ppa1_cv04_2_A14B0579P {
   public static void main(String [] args) {
      Scanner sc = new Scanner(System.in);
      sc.useLocale(Locale.US);
      System.out.print("Zadej realne cislo: ");
      double x = sc.nextDouble();
      System.out.println("---Vysledky---");
      
      if (x == 0) {
         System.out.println("Vstup = 0.0");
      }
      else if (x > 0) {
         System.out.println("10^" + x + " = " + Math.pow(10,x));
      }
      else {
          System.out.println(+ Math.abs(x) + " odmocnina z 10 = " + (double) Math.pow(10,1/(Math.abs(x))));
      }
   }
}


Ten vykřičníček je u řádky s tím scannrem: ´sc´ is never closed...jak to mám zavřít aniž bych nějak ovlivnil zbytek? protože todle není jedinej program u kterého to vyhazuje :/

PS: už je to odevzdaný...takže kopírování je zbytečné, validátor vám to vyhodí jako shodnou úlohu...

Re: Java a neuzavřený scanner

Napsal: 27 říj 2014 18:14
od Matiseli
Přesně tento problém jsem řešil já. Odpověď zní: Scanner neuzavírat. Vyvaruješ se tím pozdějším výjimkám (po uzavření se mi i ostatní Scannery divně chovaly). Pokud chceš smazat onen objekt, nastav scanner na hodnotu null.
Varování od Eclipse ignoruj.