Witam proszę o pomoc w znalezieniu błędu w programie bo byłem już na różnych forach i nic :/ Program przy wpisaniu prawidłowych wartości działa dobrze. Problem jest kiedy po wpisaniu złych w następnym wywołaniu wpiszę dobre. Wyswietla się wynik ale też błąd "NoSuchElementException"
package ćw5;
import java.util.Scanner;
import java.util.StringTokenizer;
public class Zad2
{
String linia;
static double wyn = 0;
static double kalkulator(String linia)
{
String errorMessage = "\nWadliwe dane! Spróbuj ponownie!\n";
StringTokenizer token = new StringTokenizer(linia);
if (token.countTokens() != 3)
{
System.err.println(errorMessage);
Zad2.setLine();
}
String a = token.nextToken(), // pierwsza liczba
b = token.nextToken(), // znak
c = token.nextToken(); // druga liczba
int num1 = 0, num2 = 0; // pomocnicze zmienne
num1 = Integer.parseInt(a);
num2 = Integer.parseInt(c);
char znak = b.charAt(0);
if (b.length() != 1 || (znak == '/' && num2 == 0))
{
System.err.println(errorMessage);
Zad2.setLine();
}
switch (znak)
{
case '+':
wyn = num1 + num2;
break;
case '-':
wyn = num1 - num2;
break;
case '*':
wyn = num1 * num2;
break;
case '/':
wyn = num1 / num2;
break;
case '%':
wyn = num1 % num2;
break;
default:
{
System.out.println(errorMessage);
Zad2.setLine();
}
}
return wyn;
}
static void setLine()
{
Scanner skan = new Scanner(System.in);
String linia = skan.nextLine();
double wynik = Zad2.kalkulator(linia);
System.out.println("Wynik: " + wynik);
skan.close();
}
public static void main(String[] args)
{
Zad2.setLine();
}
}
```java