2016-08-04 83 views
-4
int[] Array1 = {1,2,3,4,5,6,7,8,9,10};  
int pattern =0; 
int first = 1; 
for(int i=0; i<10;i+=2) 
{ 
    if(Array1[i] + Array1[first] > 7) 
    { 
     pattern ++; 
    } 
    first+=2; 
} 
System.out.println("The total number of patterns: " + pattern); 

我所试图做的事:加相邻号,并检查它是否大于7,如果是打印1模式等等为什么不打印4种模式?

为何不打印4种模式?

+0

这应该打印3.只有5 + 6,7 + 8和9 + 10> 7.如果使用'> ='进行比较,您将得到4。 – lurker

+0

因为它的3 ... –

+0

你提到相邻,那么2 + 3,4 + 5,6 + 7,8 + 9等不相邻?只是想确认你所期望的是你写的。 –

回答

0

阵列具有0索引开始,因此你的模式执行以下操作:

1 + 2 = 3(小于7)

(Array1[0] + Array1[1])

3 + 4 = 7(小于7,>=将代表小于或等于7)

(Array1[2] + Array1[3])

5 + 6 = 11(大大于7)

7 + 8 = 15(大于7)

9 + 10 = 19(大于7)

正如你可以看到,只有结果的3大于7

0

您的for循环启动后添加此行。

System.out.println(Array1[i] + "+" + Array1[first] + "=" + (Array1[i] + Array1[first]));

这将解释什么是你的代码发生。输出将是::

1 + 2 = 3

3 + 4 = 7

5 + 6 = 11

7 + 8 = 15

9+ 10 = 19

模式总数:3

正如你所看到的,只有三次模式大于7.因此你的输出。

如果您使用eclipse,您可以添加断点并理解代码的流程。这里是一个教程链接debugging in eclipse