Menu
CoddyTech

最小値と最大値を見つける

CoddyのGDScriptジャーニー「ロジックとフロー」セクションの一部。レッスン 50/78。

配列にはmin()とmax()というメソッドがあり、最小の要素と最大の要素を返します。

var temps := [18, 25, 9, 31, 22]
print(temps.min()) # 9
print(temps.max()) # 31

グローバル関数 min() と max() は、渡した数値を比較します。2つまたは3つの値を扱うときに便利です。

print(max(4, 12, 7)) # 12
var hp: int = min(120, 100) # 100、100を超えることはない

文字列は、Unicodeコードに基づいて1文字ずつ比較されます。すべての大文字は、すべての小文字より前に来ます。

var words := ["kiwi", "apple", "Fig"]
print(words.min()) # Fig
print(words.max()) # kiwi

テキストとして保存された数値にも同じルールが当てはまります。文字 9 は 5 の後に来るため、"9" は "56" より大きくなります。数値を比較する前に、入力を int() で変換してください。

空の配列では、どちらのメソッドも null を返します。最大値がどこにあるかを調べるには、それを find() に渡します。temps.find(temps.max()) は 3 です。辞書の場合は、値の中の最大値を取得し、find_key() でそのキーを検索します。このメソッドは、その値を持つ最初のキーを返します。

var scores := {"Mia": 120, "Leo": 95, "Ana": 140}
var best: int = scores.values().max()
print(scores.find_key(best), " ", best) # Ana 140

max()は任意の型の値を返すため、:=を書く代わりに、変数の型を宣言します(var best: int)。

challenge icon

チャレンジ

簡単

プログラムは2行を読み込みます。1行目はスペースで区切られた整数、2行目はスペースで区切られた単語です。各行には少なくとも1つの値があります。

min()とmax()を使って、最小の数値と最大の数値を出力し、続けて最小の単語と最大の単語を出力します。数値はテキストとしてではなく、数値として比較してください。入力が42 17 23 56 9 34とkiwi apple banana cherry dateの場合、出力は次のとおりです。

Smallest number: 9
Largest number: 56
Smallest word: apple
Largest word: kiwi

自分で試してみよう

extends Node

func _ready():
	var number_texts := OS.read_string_from_stdin().split(" ", false)
	var words := Array(OS.read_string_from_stdin().split(" ", false))
	# 数値をintに変換し、4つの結果を出力する
	pass
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

ロジックとフローのすべてのレッスン

自分で練習してみよう: GDScriptオンラインコンパイラ