2016-07-30 139 views

回答

0

我想這是你想要做什麼

for (int i = 0; i<= 100; i++) 
{ 
    if (i%7==0 || i%10==7) 
     Console.WriteLine(i); 
} 
+0

和你的問題給出了確切的結果? –

+0

不,它不。它結合了兩個循環的結果。就像他問。 – asibahi

2
for (int i = 0; i <=100; i++) { 
    if(i%7 == 0 || i%10 == 0) 
     Console.WriteLine (i); 
} 

或使用LINQ:

Enumerable.Range(0,100).Where(i => i%7 == 0 || i%10 == 0).ToList() 
.ForEach(i=> {Console.WriteLine (i); }); 

如果你想重複的結果太:

for (int i = 0; i <=100; i++) { 
    if(i%7 == 0) Console.WriteLine (i); 
    if(i%10 == 0 && i!=0) Console.WriteLine (i); 
} 

    Enumerable.Range(7,100) 
.Where(i => i%10 == 0).ToList().AddRange(
Enumerable.Range(0,100) 
.Where(i => i%7 == 0).ToList()) 
    .ForEach(i=> {Console.WriteLine (i); }); 
+0

第二個循環內的i = 0怎麼樣呢不會顯示 –

+0

那麼我編輯了我的答案 –

+0

這與問題的結果不一樣。第一個循環打印7,17,27等,第二個循環打印0,7,14等,你的循環不會這樣做。 – asibahi

1

這聽起來很愚蠢但它確實是你想要的。

bool flag = false; 
int factor = 10; 
for (int i = 7; i < 100;) 
{ 
    Console.WriteLine(i); 

    i += factor; 
    if (i >= 100) 
    { 
     if (flag) 
      break; 
     flag = true; 
     factor = 7; 
     i = 0; 
    } 

} 

它使用一個布爾標誌和一個動態的因素做兩個在一個循環中通過:因爲它保留了印刷就像你的榜樣值的順序看起來不整潔。

-1

我不知道你真正想要做的,但如果是我,我想打印數量,我會用數學公式

var i = 0; 
while(true) 
{ 
    var x = 7 + (i * 10); 
    if(x < 100) 
     Console.WriteLine(x); 

    var y = i * 7; 
    Console.WriteLine(y); 
    if(y >= 100) 
     break; 
    i++; 
}