Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在程序中的代码之间切换_Java_If Statement_Switch Statement - Fatal编程技术网

Java 在程序中的代码之间切换

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

我有三个计算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 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
块中调用它。我建议你从编译和运行的代码开始,然后再添加到代码中。如果你从一个混乱开始,再添加一个混乱,你最终会陷入混乱。