[程式開發技巧] 從迴圈中取出陣列最小與最大的數字 | 多語言版本c#, java, python, js, php

只要使用一次迴圈
就可以取出這個陣列中最小與最大的數字

以下是各個語言的範例

(C#)

int[] numbers = { 5, 8, 4, 12, 2, 9, 1};
int min = numbers[0];
int max = numbers[0];
for (int i = 1; i < numbers.Length; i++)
{
    if (numbers[i] < min)
    {
        min = numbers[i];
    }
    if (numbers[i] > max)
    {
        max = numbers[i];
    }
}

(Java)

int[] numbers = { 5, 8, 4, 12, 2, 9, 1};
int min = numbers[0];
int max = numbers[0];
for (int i = 1; i < numbers.Length; i++)
{
    if (numbers[i] < min)
    {
        min = numbers[i];
    }
    if (numbers[i] > max)
    {
        max = numbers[i];
    }
}

(Python)

numbers = [5, 8, 4, 12, 2, 9, 1]
min = numbers[0]
max = numbers[0]
for number in numbers:
    if number < min:
        min = number
    if number > max:
        max = number

(JavaScript)

const numbers = [5, 8, 4, 12, 2, 9, 1];
let min = numbers[0];
let max = numbers[0];
for (let i = 1; i < numbers.length; i++)
{
    if (numbers[i] < min)
    {
        min = numbers[i];
    }
    if (numbers[i] > max)
    {
        max = numbers[i];
    }
}

(PHP)

$numbers = [5, 8, 4, 12, 2, 9, 1];
$min = $numbers[0];
$max = $numbers[0];
for ($i = 1; $i < count($numbers); $i++)
{
    if ($numbers[$i] < $min)
    {
        $min = $numbers[$i];
    }
    if ($numbers[$i] > $max)
    {
        $max = $numbers[$i];
    }
}

在判斷式中
你會發現沒有使用else if
這是因為每一次迴圈都需要同時判斷min與max

如果加上else if就會變成
只要符合其中一個條件
其他判斷式就不會被執行

留言