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.