Witam pomoże ktoś rozwiązać moje problemy? Chodzi o to że gdy zostanie wyłapany jakiś błąd wyjątek to chce żeby pętla się wykonała jeszcze raz. Zamiast tego:
1)Kolejna pętla się nie wykonuje
2)metoda zwraca niepożądaną wartość 0.0
3) Brak odpowiedniego komunikatu (errorMessage)
Ponadto przy każdym uruchomieniu programu wyskkakuje info o jakimś hot codzie i musze dawać za każdym razem opcję restart
package ćw5;
import java.util.Random;
import java.util.Scanner;
public class Zad3
{
public static void kolo(double r, int ix, int iy, int n)
{
int[] tabx = punkt_x(n);
int[] taby = punkt_y(n);
int i = 0;
for (i = 0; i < n; i++)
{
if (Math.sqrt(Math.pow((tabx[i] - ix), 2) + Math.pow((taby[i] - iy), 2)) > r)
{
System.err.println("Punkt (" + tabx[i] + "," + taby[i] + ") znajduje się na zewnątrz koła.");
} else
{
System.out.println("Punkt (" + tabx[i] + "," + taby[i] + ") znajduje się wewnątrz koła.");
}
}
}
public static int[] punkt_x(int n)
{
Random gen = new Random();
int x[] = new int[n];
for (int i = 0; i < n; i++)
{
x[i] = gen.nextInt(10) - 5;
}
return x;
}
public static int[] punkt_y(int n)
{
Random gen = new Random();
int y[] = new int[n];
for (int i = 0; i < n; i++)
{
y[i] = gen.nextInt(10) - 5;
}
return y;
}
public static void main(String[] args)
{
double r;
int ix, iy;
Scanner skan = new Scanner(System.in);
int n;
boolean isNotOk = true;
do
{
try
{
System.out.print("Podaj promień koła: ");
r = skan.nextDouble();
System.out.print("Podaj współrzędne środka koła: ");
ix = skan.nextInt();
iy = skan.nextInt();
do
{
System.out.print("Podaj liczbę współrzędnych do wylosowania: ");
n = skan.nextInt();
System.out.println();
} while (n <= 0);
Zad3.punkt_x(n);
Zad3.punkt_y(n);
Zad3.kolo(r, ix, iy, n);
skan.close();
isNotOk = false;
} catch (java.util.InputMismatchException e)
{
System.err.print("\nWadliwe dane, popraw!\n\n");
skan.nextLine();
}
} while (isNotOk);
}
}