如何在圈子里写理性?

时间:2017-03-27 18:21:03

标签: java switch-statement do-while

这个程序是一个菜单。(请不要说这个名字的原因)

    /*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package menü.rendszer;
import java.util.Scanner;
/**
 *
 * @author Apa---2016
 */
public class MenüRendszer{

    /**
     * @param args the command line arguments
     */
public static void main(String[] args){
Scanner beolv;
beolv=new Scanner(System.in);
boolean y=false;
do{
System.out.println("Válassz egy síkidomot!(Choose one plane figure!)");
System.out.println("(1)Téglalap(Retangle)");
System.out.println("(2)Kör(Circle)");
System.out.println("(3)Háromszög(Triangle)");
System.out.println("(4)Rombusz(Rhombus)");
System.out.print("Számkód:(Number code");
int x=0;
x=beolv.nextInt();
switch(x){
case 1:
    System.out.println("A kiválasztott síkidom:Téglalap(The choosed plane figure:Retangle)");
    int a=0;
    System.out.print("a=");
    a=beolv.nextInt();
    int b=0;
    System.out.print("b=");
    b=beolv.nextInt();
    int K=0;
    K=2*(a+b);
    int T=0;
    T=a*b;
    System.out.println("Kerülete(Perimeter):"+K);
    System.out.println("Területe(Area):"+T);
    System.out.println();
    break;
case 2:
    System.out.println("A kiválasztott síkidom:Kör(The choosed plane figure:Circle)");
    int R=0;
    System.out.print("R=");
    R=beolv.nextInt();
    K=0;
    T=0;
    K=(int)(2*R*3.14);
    T=(int)(R*R*3.14);
    System.out.println("Kerülete(Perimeter):"+K);
    System.out.println("Területe(Area):"+T);
    System.out.println();
    break;
case 3:
    System.out.println("A kiválasztott síkidom:(Derékszögű)Háromszög(The choosed plane figure:(Right)Triangle)");
    K=0;
    T=0;
    System.out.print("a=");
    a=beolv.nextInt();
    System.out.print("b=");
    b=beolv.nextInt();
    int c=0;
    c=(int) Math.sqrt(a*a+b*b);
    K=a+b+c;
    T=a*b/2;
    System.out.println("Kerülete(Perimeter):"+K);
    System.out.println("Területe(Area):"+T);
    System.out.println();
    break;
case 4:
    System.out.println("A kiválasztott síkidom:Rombusz(The choosed plane figure:Rhombus)");
    K=0;
    T=0;    
    int e=0;
    int f=0;
    System.out.print("e=");
    e=beolv.nextInt();
    System.out.print("f=");
    f=beolv.nextInt();
    K=e*e+f*f/4;
    T=e*f/2;
    System.out.println("Kerülete(Perimeter):"+K);
    System.out.println("Területe(Area):"+T);
    System.out.println();
    break;
default:y=false;break;
}
}
while(!y);
}
}
你能看到圆圈吗?我测试过,例如R = 10原始预测器= 62.8,但输出只有62.如何有理数? 第二个问题。如何保持默认的开关? (我希望你明白,因为我不能说英语。)(我是匈牙利人。)

1 个答案:

答案 0 :(得分:0)

hibádszvolt,hogy az y - 一个程序elejénhamisraállítottad,ésadefault - 禁令是。 Haazlejénigazzalkezdesz,éadigigismételszamígy igaz,akkorjólsogműködni。

您的问题是您将y初始化为false,而default也将其设置为false。如果你从true开始,并在y为真时循环,它将正常工作。

 public static void main(String[] args) {
    Scanner beolv;
    beolv = new Scanner(System.in);
    boolean y = true;
    do {
        System.out.println("Válassz egy síkidomot!");
        System.out.println("(1) Téglalap");
        System.out.println("(2) Kör");
        System.out.println("(3) Háromszög");
        System.out.println("(4) Rombusz");
        System.out.print("Számkód: ");
        int x;
        x = beolv.nextInt();
        switch (x) {
            case 1:
                System.out.println("A kiválasztott síkidom: Téglalap");
                double a;
                System.out.print("a=");
                a = beolv.nextInt();
                double b;
                System.out.print("b=");
                b = beolv.nextInt();
                double K;
                K = 2 * (a + b);
                double T;
                T = a * b;
                System.out.println("Kerülete(Perimeter):" + K);
                System.out.println("Területe(Area):" + T);
                System.out.println();
                break;
            case 2:
                System.out.println("A kiválasztott síkidom: Kör");
                double R;
                System.out.print("R=");
                R = beolv.nextInt();
                K = (2 * R * 3.14);
                T = (R * R * 3.14);
                System.out.println("Kerülete:" + K);
                System.out.println("Területe:" + T);
                System.out.println();
                break;
            case 3:
                System.out.println("A kiválasztott síkidom: (Derékszögű) Háromszög");
                System.out.print("a=");
                a = beolv.nextInt();
                System.out.print("b=");
                b = beolv.nextInt();
                double c;
                c = Math.sqrt(a * a + b * b);
                K = a + b + c;
                T = a * b / 2;
                System.out.println("Kerülete:" + K);
                System.out.println("Területe:" + T);
                System.out.println();
                break;
            case 4:
                System.out.println("A kiválasztott síkidom: Rombusz");
                double e;
                double f;
                System.out.print("e=");
                e = beolv.nextInt();
                System.out.print("f=");
                f = beolv.nextInt();
                K = e * e + f * f / 4;
                T = e * f / 2;
                System.out.println("Kerülete:" + K);
                System.out.println("Területe:" + T);
                System.out.println();
                break;
            default:
                y = false;
                break;
        }
    }
    while (y); // Addig ismételje amíg y igazra van állítva, a default hamisra rakja és kilép a program.
}