Co można by tu zmienić?
package podstawy_programowani;
/*
ZBIOR ZADAN 7
Zad 6
Pobieraj od użytkownika dwie liczby do zmiennych o nazwach a i b typu int tak długo,
aż suma cyfr wszystkich liczb z przedziału <a, b> nie będzie parzysta, a suma cyfr
jedności liczb z tego przedziału nie będzie większa od sumy cyfr dziesiątek tych liczb
*/
import java.util.Scanner;
public class Zad4 {
static void getNumbers() {
Scanner sc = new Scanner(System.in);
int a = isDigit(sc.nextLine());
int b = isDigit(sc.nextLine());
sc.close();
int alldigitsSum = allDigitSum(a,b);
if(!isEven(alldigitsSum) || unitsSum(a,b ) < tensSum(a,b)){
throw new IllegalArgumentException("Numbers is not correct");
}
}
static int allDigitSum(int a, int b){
int alldigitsSum = 0;
for (int i = a; i <= b; i++) {
alldigitsSum += digitSum(i);
}
return alldigitsSum;
}
static int unitsSum(int a, int b) {
int unitsSum = 0;
for (int i = a; i <= b; i++) {
unitsSum += i % 10;
}
return unitsSum;
}
static int tensSum(int a, int b) {
int tensSum = 0;
for (int i = a; i <= b; i++) {
tensSum += (i / 10) % 10;
}
return tensSum;
}
static int isDigit(String string) {
if(string == null){
throw new IllegalArgumentException("string is null");
}
if (!string.matches("[0-9]+")) {
throw new IllegalArgumentException("Number is not correct");
}
return Integer.valueOf(string);
}
static int digitSum(int number) {
int digitSum = 0;
do {
digitSum += number % 10;
number = number / 10;
} while (number > 0);
return digitSum;
}
static boolean isEven(int number) {
return number % 2 == 0;
}
public static void main(String[] args) {
getNumbers();
}
}