#!/usr/koeki/bin/ruby sum = 0 menu = [] price = [] i = 0 open("price.txt", "r") do |neta| # price.txtを読み込みモードで開く while line = neta.gets # ファイルから1行ずつ読む if /(\w+)\s+(\d+)円/e =~ line # (数字)円 というパターンがあれば menu[i] = $1 # $1 は商品名 price[i] = $2.to_i # $2 が「数字」に当てはまるので整数化 printf("%3d %s", i, line) # 商品番号と、読み込んだ行を出力 end i += 1 end end while true print "御注文は(番号で入れてね、q で終了)?: " line=gets.chomp! # ユーザの入力を line に入れる if line == "q" # "q" を入力したら break # 終了 end number = line.to_i # 整数(メニュー番号)にする if number < 0 || number >= i puts "そんなメニューねぇでガス" redo end printf("はぁ〜い、「%s」一丁\n", menu[number]) sum += price[number] end print "おあいそでガス\n" printf("全部で %d 円でガス。まいどっ\n", sum)