Zdravím, mám opět jeden dotaz. Mám metodu, ve které mám podmínku a kterou monitoruji jako výjimku pomocí try. Pozitivní podmínka, respektive výjimka, má vyhodit hlášku, že program neumí počítat komplexní čísla a tím bych chtěl program ukončit. Jenže program jede dál a pokračuje na další dvě metody a snaží se i přesto vypočítat to. Proto jsem se chtěl zeptat, zda existuje nějaký příkaz pro if, aby když je pravda aby už nepokračoval. Avšak return použít nechci, protože metoda obsahuje jenom if a nic nevrací, proto chci použít void. Raději uvedu celý program. Díky za pomoc.
package VypocetKvadratickeRovnice;
import java.lang.Math.*;
class ZapornyDiskriminant extends Exception {
@Override
public String toString(){
return "Program neumí počítat s komplexními čísly";
}
}
public class VypocetKvadratickeRovnice {
public static void main(String[] args) {
double hodnoty[]={3,-9,13};
double diskriminant = vypocetDiskriminantu(hodnoty);
try {
podminkaZdaJeZaporny(diskriminant);
}
catch (ZapornyDiskriminant v) {
System.out.println("Chyba: " + v);
}
double odmocninaDisktriminantu = Math. sqrt(diskriminant);
double[] vysledek = vysledek(odmocninaDisktriminantu, hodnoty);
}
static double vypocetDiskriminantu(double cisla[])
{
return (cisla[1]*cisla[1]-4*cisla[0]*cisla[2]);
}
static void podminkaZdaJeZaporny(double diskriminant) throws ZapornyDiskriminant
{
if(diskriminant<0)
{
throw new ZapornyDiskriminant();
}
}
static double [] vysledek(double odmocninaDisktriminantu, double hodnoty[])
{
double x1 = (((-1) * hodnoty[1] + odmocninaDisktriminantu) / (2 * hodnoty[0]));
double x2 = (((-1) * hodnoty[1] - odmocninaDisktriminantu) / (2 * hodnoty[0]));
System.out.println("Výsledný kořen x1 je " + x1);
System.out.println("Výsledný kořen x2 je " + x2);
double [] vysledek = {x1, x2};
return vysledek;
}
}