Witam, mam problem z napisaniem własnego wyjątku, który sprawdzałby, czy zmienna typu String ma konkretną wartość (R lub M).
Ogólnie, poniższa aplikacja ma segregować elementy tablicy rosnąco lub malejąco wg wyboru użytkownika. Normalnie zrobiłbym z instrukcją else ale wytyczne są takie, że musi być to obsługiwany wyjątek. Proszę pomóżcie
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class test {
class BladS extends Exception{
public BladS(String message) {
super(message);
}
}
public static String pobierzWybor() throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
return br.readLine();
}
public String czytajWybor() throws BladS {
try {
String znaki = pobierzWybor();
if (znaki == "R" && znaki == "M") {
return znaki;
}
} catch (Exception e) {
throw new BladS("Dozwolona forma wyboru to R - rosnąco i M - malejąco.");
}
return null;
}
public static void main(String[] args) {
int[] tab = new int[] {123, 432, 23, 54, 198};
System.out.print("Wybierz formę sortowania: R - rosnąco lub M - malejąco: ");
String wyb = czytajWybor();
if (wyb == "R") {
for (int i = 0; i < tab.length; i++) {
for (int j = i + 1; j < tab.length; j++) {
if (tab[i] > tab[j]) {
int pom = tab[i];
tab[i] = tab[j];
tab[j] = pom;
}
}
}
}
if (wyb == "M") {
for (int i = 0; i < tab.length; i++) {
for (int j = i + 1; j < tab.length; j++) {
if (tab[i] < tab[j]) {
int pom = tab[i];
tab[i] = tab[j];
tab[j] = pom;
}
}
}
}
}
}