我有
def read_album(music_file)
music_file.gets
album_artist = music_file.gets
album_title = music_file.gets
album_genre = music_file.gets.to_i
tracks = read_tracks(music_file)
album = Album.new(album_artist, album_title, album_genre, tracks)
print_album(album)
end
我想將整個塊回圈 3 次(可能使用 3.times 之類的東西),但是讓 music_file.gets(程序中的第一行)每次回圈運行不同的次數。(在第一個回圈中只說一次,在第二個回圈中說 5 次,在第三個回圈中說 8 次。)我不確定是否有辦法添加索引并以某種方式使索引從每個回圈的特定值發生變化,并且有music_file.gets 根據那個或其他方式重復。
編輯:文本檔案有一組專輯,格式與此類似:我想使用曲目數作為回圈的控制變數來讀取專輯資訊,music_file.gets 是獲取該資訊。
Albums.txt (the file name, everything below is a separate line of text in the file)
*Number of albums (integer)
*Artist name
*Album name
*Number of Tracks (integer)
*Track 1
*Track 2
*Artist Name
*Album name
*Number of Tracks (integer)
*Track 1
*Track 2
*Track 3
etc. (number of tracks per album are random)
uj5u.com熱心網友回復:
給定通過讀取獲得的一對計數,您可以使用嵌套回圈結構。計數的兩種基本機制是count.timesor Range.each,如下所示:
number_of_albums.times do |i| # i goes from 0 to m-1
# do album stuff, including picking up the value of number_of_tracks
(1..number_of_tracks).each do |j| # j goes from 1 to number_of_tracks
# do track stuff
end
# do additional stuff if needed
end
如果要完成的“東西”是單行的,您可以用花括號替換 do/end。
有關各種回圈選項的更多資訊,請參閱本教程。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/336763.html
