2016-08-04 78 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