[#42243] コミュニティと宗教の分離について — Beyond <beyond@...>

14 messages 2006/05/21

[#42267] メニューのループについて — リックス <rubyer4649@...>

りっくすです

21 messages 2006/05/27

[#42301] Re: メニューのループについて — "conundrum /" <conundrum@...>

conundrumです。

11 messages 2006/05/28

[ruby-list:42271] Re: メニューのループについて

From: 石井 大海 <banzaida@...>
Date: 2006-05-27 14:02:59 UTC
List: ruby-list #42271
どうも今晩は、konnです。

On 2006/05/27, at 21:34, リックス wrote:
> りっくすです
>
> メニュー画面の作成でループから抜けずと待ってしまいます
>
> 1.test1
> 2.test2
> 3.test3
> Input 1-3(q:quit):q <==qを入力
>  □ <=カーソルが表示され止まってしまう
>
>
> #source file
>
> #!/usr/bin/ruby
> printf("1:test1\n")
> printf("2:test2\n")
> printf("3:test3\n")
> printf("select the 1-3(q:quit)\n")
> line=gets.chomp!
> while true
>         if line=="q"
>         #       break
>         else
>                 printf("ok")
>         end
> end
> #EOF
>
> やりたいことは、1ー3を押してるときは何回もメニューが表
> 示されqを押したときはすぐに終了させたい
> どうすればいいかオチエを拝借させてください
> おねがいします
>      m(_ _)mぺこ
>

breakがコメントアウトされているので、まずコメントを外しましょ 
う。そうすれば、qと入力すれば抜けられます。
それから、q以外であればまたメニューを表示させたいのであれ 
ば、
whileは、nil又はfalse以外が渡されない限り、ずっと繰 
り返すので(説明分かりにくくてご免なさい)、
このように書けます。

= ソースここから
def show_menu
   puts "1:test1"
   puts "2:test2"
   puts "3:test3"
   puts "select the 1-3(q:quit)"
end

show_menu

while line = gets.chomp!
   if line == "q"
     break
   else
     puts "ok"
     show_menu
   end
end

= ここまで

……というのを送ろうとしたら、先に答えが。……小波さんの方が私の 
よりわかりやすいと思いますのでそちらを……^^;
世の中何があるか分かりませんね。(ぉぃ


それでは……


==== konn ====
Good bye...
     e-mail: banzaida@jcom.home.ne.jp
     blog: http://d.hatena.ne.jp/mr_konn/ , http://d.hatena.ne.jp/ 
rubyca/
     HP: http://konn.b7m.net/
---o-----o-----o-----o----o----o----o----o----o---

In This Thread