BŁĄD - początkujący

0

Witam, jestem nowy na forum i początkujący w Javie. Proszę o podpowiedz, bo za cholerę nie mogę znaleźć błędu:
kod ponizej:


import java.util.Scanner;

- - -

float x, y, suma, roznica, iloczyn, iloraz;

System.out.print("Program oblicza sumę, różnicę, iloczyn i iloraz" 
+ "dla dwóch liczb x i y wprowadzonych przez użytkownika.");

Scanner keyboard = new Scanner(System.in);

System.out.print("Wprowadź wartość liczby X: ");
x = keyboard.nextFloat();*

System.out.print("Wprowadź wartość liczby y: ");
y = keyboard.nextFloat();

suma = x + y;
roznica = x - y;
iloczyn = x * y;
iloraz = x / y;

System.out.println("Wyniki -");
System.out.printf("suma: %10.2f", suma);
System.out.printf("różnica: %10.2f", roznica);
System.out.printf("iloczyn: %10.2f", iloczyn);
System.out.printf("iloraz: %10.2f", iloraz);

Otrzymuję komunikat:

"Exception in thread "main" java.util.NoSuchElementException
at java.base /java.util.Scanner.throwFor( Scanner.java:937 )
at java.base /java.util.Scanner.next(Scanner.java:1594)
at java.base /java.util.Scanner.nextFloat(Scanner.java:2496)
at Main.main(Main.java:16)"

Dziękuję

0

title

0

To są błędu, które powstały podczas powstawania posta. W załączeniu screen z kompilatora.

title


title

0

Nie wiem co Ci nie działa. Uruchamiasz to z konsoli?
Przetestowałem kod:

import java.util.Scanner;

public class WriteOnlyPL{

  public static void main(String []args){

    System.out.println("Program oblicza sumę, różnicę, iloczyn i iloraz dla dwóch liczb x i y wprowadzonych przez użytkownika.");
    Scanner keyboard = new Scanner(System.in);

    System.out.print("Wprowadź wartość liczby X: ");
    final double x = keyboard.nextFloat();

    System.out.print("Wprowadź wartość liczby y: ");
    final double y = keyboard.nextFloat();

    final double suma = x + y;
    final double roznica = x - y;
    final double iloczyn = x * y;
    final double iloraz = x / y;

    System.out.println("Wyniki -");
    System.out.printf("suma: %10.2f\n", suma);
    System.out.printf("różnica: %10.2f\n", roznica);
    System.out.printf("iloczyn: %10.2f\n", iloczyn);
    System.out.printf("iloraz: %10.2f\n", iloraz);
  }
}

i w trybie interaktywnym wszystko działa na https://www.jdoodle.com/online-java-compiler/#

0

Nie pamiętam dokładnie, a nie mam teraz okazji by sprawdzić, ale może problem lezy w formie wprowadzania tej liczby float z klawiatury. Sprawdzałeś przypadek z kropką, np. 2.5, jak i przypadek z przecinkiem (2,5)?

0

Dziękuję za odpowiedzi,

  1. kod kolegi "KamilAdam" różni się tylko dodaniem "final" do zmiennych. Więc tylko ten element nie powinien mieć znaczącego wpływu na funkcjonowanie kodu (w porównaniu do mojego);
  2. w odniesieniu do uwagi kolegi "Belka" - kompilator nie daje mi szansy wprowadzenia danych, ponieważ od razu pojawia się błąd w kompilatorze.
    Sprawdzę w domu jak to działa na zainstalowanym NetBeans, bo moim odniesieniem są tylko kompilatory on-line.
0

A dzieje się to przy każdym wywołaniu programu, czy np. dopiero za drugim razem? Nie widzę tam keyboard(close); (swoją drogą nazwanie obiektu klasy Scanner nazwą "keyboard" jest totalnie mylące).

Testowałeś przypadek z pobieraniem z klawiatury intów: keyboard.nextInt();, albo nawet po prostu Stringa: keyboard.next(); lub keyboard.nextLine();?

0

Sprawa wyjaśniona. Kiedy używam kompilatora on-line wyskakuje mi błąd. Natomiast jak wrzucam to w zainstalowanego Netbeans'a wszystko OK.

1 użytkowników online, w tym zalogowanych: 0, gości: 1