3 回答

TA貢獻1817條經驗 獲得超14個贊
我會使用一個while循環——它對這個問題很有意義。
另外——記住沒有否定的用例——你也必須處理它。
int[] numbers = new int[] {13, 22, -5, 94, 66, -38, 41, -79, -1, 53};
int index = 0
while (index < numbers.Length & numbers[index] >= 0)
index++;
if (index < numbers.Length & numbers[index] < 0)
Console.WriteLine(numbers[index]);
else
Console.WriteLing("No neg.");
Console.ReadLine();

TA貢獻1856條經驗 獲得超5個贊
要更正您的嘗試break,請在找到號碼后添加一個。這將終止循環,您將擁有數組中的第一個負數。
for (int i = 0; i < 10; i++)
{
if (numbers[i] < 0)
{
firstminus[0] = numbers[i];
break;
}
}
注意2點:
不需要數組
firstminus
——最好是簡單的int
.循環運行到
10
. 這是一個神奇的數字。而是運行直到數組的長度。
所以:
int firstMinus;
for (int i = 0; i < numbers.Length; i++)
{
if (numbers[i] < 0)
{
firstminus = numbers[i];
break;
}
}
最后,如果您熟悉 linq,那么只需使用.FirstOrDefaultwhich 返回集合中與謂詞匹配的第一項(default如果沒有符合謂詞,則返回類型的):
var firstMinus = numbers.FirstOrDefault(i => i < 0);

TA貢獻1848條經驗 獲得超10個贊
你已經接近了,只要break你找到第一個負數,你就需要這樣做。IE
if (numbers[i] < 0) {
firstminus[0] = numbers[i];
break; // terminate the loop
}
順便說一句,我會使用一個int變量而不是構造一個數組來存儲結果。
IE
int firstminus = 0;
for (int i = 0; i < numbers.Length; i++)
{
if (numbers[i] < 0) {
firstminus = numbers[i];
break; // terminate the loop
}
}
另一方面,最簡單的方法是通過 LINQ:
numbers.FirstOrDefault(x => x < 0);
- 3 回答
- 0 關注
- 256 瀏覽
添加回答
舉報