将值输入几个数组

时间:2018-09-26 23:52:38

标签: java

我必须仅使用一个三维数组将值输入数组。在一个阵列中,对重量进行范围检查,以后必须打印。但是,由于某些原因,所有打印输入的if条件都保持不变:

测试数据: 性别女 姓名:吉赛尔 身高:165 体重:53

性别:男 姓名:亚当 身高:178 体重74

错误的输出:

女吉赛尔170 53“你的体重正常” 男亚当178 74“你的体重正常”

它应该输出: 女吉赛尔170 53“您的体重正常” 男性亚当178 74“你肥胖”

我意识到目前该程序没有意义,但这是我的要求,我试图在最近10个小时内解决。我不喜欢代码,但建议如何解决这个问题。谢谢

final int PGENDER = 2, PNAME = 2, PWEIGHT = 2, PHEIGHT = 2;


    String weightDesc = null;


    String [] gender = new String[PGENDER],
              name = new String[PNAME],
              height= new String[PHEIGHT];

    int [] weight  = new int[PWEIGHT];


    int weightScale = 0;


    for( int i=0; i < gender.length;i++) {
        System.out.println("Enter your gender");
        gender[i] = s.nextLine();

    }



    for(int i=0; i < name.length;i++) {
        System.out.println("Enter your name");
        name[i] = s.nextLine();
    }



    for( int i=0; i < height.length;i++) {
        System.out.println("Enter your height");
        height[i] = s.nextLine();
    }



    for(int i=0; i< weight.length; i++) {
        System.out.println("Enter your weight");
        weight[i] = s.nextInt();

        weightScale = weight[i];

        if (weightScale <= 55){
            weightDesc = "Your weight is normal";
            }
        else if ( weightScale > 56 && weightScale < 64){
            weightDesc = "You're over weight";
            }
        else if (weightScale > 65 && weightScale < 72){
            weightDesc = "You're obese";
            }

        }

    for(int i = 0; i< gender.length;i++) {

        System.out.println(gender[i] + " "+ name[i]+ " " + height[i] + "" + weight[i]+ " " + weightDesc);
    }

1 个答案:

答案 0 :(得分:0)

您只有一个weightDesc变量,因此在循环中您正在更新同一变量。

请像其他变量一样考虑使用weightDesc数组。

但是

实际上,您做的这种方式不好,最好设计一个包含所有变量然后具有这些对象的数组/列表的类。

为什么要重复这些值

final int PGENDER = 2, PNAME = 2, PWEIGHT = 2, PHEIGHT = 2;

这只会使您的代码难以理解,为什么不可以

final int arraySize = 2;

建议方式

for( int i=0; i < arraySize; i++) {
    System.out.println("Enter your gender");
    String gender = s.nextLine();
    System.out.println("Enter your name");
    String name = s.nextLine();
    System.out.println("Enter your height");
    String height = s.nextLine();

   MyClass obj = new MyClass (gender, name, height);
   myArr [i] = obj;

}

// now loop and print