Java 在程序中的代码之间切换
我有三个计算PI的程序,我想把它重构成一个。我无法使用Java 在程序中的代码之间切换,java,if-statement,switch-statement,Java,If Statement,Switch Statement,我有三个计算PI的程序,我想把它重构成一个。我无法使用if或switch命令使其工作。这与案例3有关 public class ProgramPI { public static void main(String[] args) { // TODO Auto-generated method stub int z = Integer.parseInt(JOptionPane.showInputDialog("Wybierz metode
if
或switch
命令使其工作。这与案例3有关
public class ProgramPI {
public static void main(String[] args) {
// TODO Auto-generated method stub
int z = Integer.parseInt(JOptionPane.showInputDialog("Wybierz metode liczenia PI 1=Leibnitz 2=Wallis 3=MonteCarlo:"));{
switch(z){
case 1:
double pi=0;
double mianownik=1;
double i = Integer.parseInt(JOptionPane.showInputDialog("Obliczamy PI metoda Leibnitza podaj n: "));
for (int x = 0; x < i; x++){
// obliczanie ciagu
if (x % 2 == 0) {
pi = pi + (1 / mianownik);
} else {
pi=pi - (1 / mianownik);
}
mianownik = mianownik + 2;
}
pi = pi * 4;
System.out.println("Przy n= " + i + " Pi = " + pi);
break;
case 2:
double termCount = 2;
double polpi = 1;
double termin;
// double termino2 =0;
double n = Integer.parseInt(JOptionPane.showInputDialog("Liczymy Pi wzorem Wallisa, podaj n:"));
for (double j = 0; j <= n; j++)
{
termin = (termCount / (termCount-1));
// System.out.println(termin);
polpi = polpi * termin;
termin = (termCount / (termCount+1));
// System.out.println(termin+" "+ mediopi);
polpi = polpi * termin;
termCount= termCount + 2;
}
System.out.println("Ilosc wyrazen = " + termCount);
polpi = polpi * 2;
System.out.println("Przy n= " + n + " Pi wynosi: " + polpi);
break;
case 3:
static double podajPi(int liczbaStrzalow) {
int wKole = 0;
// generowanie punktów
for (int i = 0; i < liczbaStrzalow; i++) {
double x = Math.random();
double y = Math.random();
// Sprawdzanie, czy punkt jest w kole
// r = 1, więc r * r = 1
if ((x * x + y * y) <= 1) {
wKole++;
}
}
// obliczanie stosunku liczby punktów w kole do wszystkich punktów
double s = (double) wKole / liczbaStrzalow;
return 4 * s;
}
System.out.println("Pi = " + Math.PI);
// obliczanie Pi dla 00, 1000, 10 000, 100 000 oraz 1000 000 punktów
// można to zrobić za pomocą pętli
for (int i = 100; i <= 1000000; i *= 10) {
double pi = podajPi(i);
System.out.println("Dla " + i + " punktów Pi = " + pi + "\n"
+ "błąd = " + (pi - Math.PI));
}
}
{
}
}
公共类程序{
公共静态void main(字符串[]args){
//TODO自动生成的方法存根
intz=Integer.parseInt(JOptionPane.showInputDialog(“Wybierz metode liczenia PI 1=Leibnitz 2=Wallis 3=MonteCarlo:”){
开关(z){
案例1:
双pi=0;
双米安奥尼克=1;
double i=Integer.parseInt(JOptionPane.showInputDialog(“obliczammy PI metoda Leibnitza podaj n:”);
对于(int x=0;x对于(double j=0;j你不能在开关
或if
中嵌入方法。那么这里的解决方案是什么呢?我从我的基本知识和在谷歌上找到的东西都试过了。正如我提到的,我是一个糟糕的程序员。请从清晰地格式化代码开始。然后请注意,你作为程序员的技能是无关紧要的:如果你想要的话帮助,你需要帮助我们帮助你。清晰。简洁。首先创建方法podajPi
。然后在你的case
块中调用它。我建议你从编译和运行的代码开始,然后再添加到代码中。如果你从一个混乱开始,再添加一个混乱,你最终会陷入混乱。