每10个值打印一次消息条件

时间:2016-11-08 17:23:00

标签: java arrays

我尝试打印一条消息,如果数组中的条件为真,则每10个值。

示例:用户可以记录用户想要输入的10行数。

ex:4。

然后,用户可以在数组中键入20个值。

1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 等......

现在我需要在每10个值下,验证:是否满足以下某些条件:

if 2 == "mack".
if 3 == "rack".
if 3 && 2 == "both".
if aren't nay of the values = "none".

例如:

用户日志:

      1 2 4 5 6 7 8 9 0 5
      1 2 3 5 6 7 8 9 0 9
      1 2 3 4 5 6 7 8 9 0
      1 2 0 0 5 6 7 8 9 0

控制台显示:

  1 2 4 5 6 7 8 9 0 5
      mack
      1 2 3 5 6 7 8 9 0 9
      rack
      1 2 3 4 5 6 7 8 9 0
      both
      1 2 0 0 5 6 7 8 9 0
      none

我怎样才能使这个工作>?

这就是我现在所拥有的:

public class Main {

    public static void main(String[] args) 
    {

        Scanner sc = new Scanner(System.in);
        int num = sc.nextInt();

        int total = num * 10;

        int[] val = new int[total];

        for(int i = 0; i < val.length; i++)
        {
            val[i] = sc.nextInt();
        }
        int zack = 17;
        int mack = 18;

        int count = 0;
        String m = null;
        String r = null;

        String ans;

        for(int i = 0; i < val.length; i++)
        {
            System.out.print(val[i] + " ");

            count++;

            if(contains(val, 17))
            {
                ans = "zack";
            }
            else if(contains(val, 18))
            {
                ans = "mack";
            }
            else {
                ans = "none";
            }

            if(count == 10)
            {
                System.out.println();
                System.out.println(ans);


                count = 0;
            }
        }

    }
     static boolean contains(int[] arr, int item) {
          for (int n : arr) {
             if (item == n) {
                return true;
             }
          }
        return false;
    }

}

1 个答案:

答案 0 :(得分:0)

这是你想要做的伪代码:

index = 0
twoSeen = false
threeSeen = false
for each item {
   if (item == 2) {
      twoSeen = true
   }
   if (item == 3) {
      threeSeen = true
   }
   print(item)
   index = index + 1
   if (index == 10) {
      printReport(twoSeen,threeSeen)
      index = 0
      twoSeen = false
      threeSeen = false
   }
}

您需要做的就是将其转换为Java,并编写printReport方法(这应该是微不足道的。)

 private void printReport(boolean seen2, boolean seen3) {
      if(seen2 && !seen3) {
           System.out.println("Mack");
      } else if(...

......你可以填写剩下的部分。

有一种更智能的方法可以使用%运算符检测每个第十个项目,但在您使用代码之前保留该项目。

注意我提供了伪代码和部分答案,因为这看起来像是一个家庭作业问题,所以你需要的是朝着正确的方向推进。