• ベストアンサー

RubyでのFor文の書き方

singlecatの回答

  • singlecat
  • ベストアンサー率33% (139/418)
回答No.1

500.step(100,0.2) { |i| } こんな感じかな

festango
質問者

お礼

無理にwhileでループさせなくてもstepを使えばよかったんですね。勉強になりました。

関連するQ&A

  • Rubyで配列を使ったfor文の中に条件つきif文

    Rubyで配列を使ったfor文の中に条件付きのif文を入れてループさせたいのですが、基本的な構文が分かりません。 for i in array     if i == 9       array[i] << 'ア'     end end という雰囲気で書きたいのですが、どうしたらよいでしょうか。 i番目のループまで、配列のarrayを走査するにはどうすればよいでしょうか。 基礎的な質問ですみません。よろしくお願いします。

  • Rubyでのfor文

    Ruby初心者です。 Rubyでフーリエ級数を求めるプログラムを作成しました。 しかしリファクタリング途中、以下のコード(抜粋)が美しくないと感じ、 x = -@lamda/2.0 while x <= @lamda/2.0 c += yield(x, m) x += @dx end for (x = -@lamda/2.0; x <= @lamda/2.0; x += @dx) c += yield(x, m) のようにC言語風に書き直したいと思いました。 for文やイテレータで実数を使用し、繰り返す方法を教えてほしいです。

  • for文

    整数を読み込んで、その値を0までカウントダウンしながら表示するプログラム作りたいのですが、 while文ではできたのですが、for文ではうまくいきません。 どこが間違っているのでしょうか? OS:Windows XP C++Builder X パーソナル #include <stdio.h> int main(void) { int i; int num; printf("整数を入力してください:"); scanf("%d", &num); for(i = num; i <= 0; --i) { printf("%d", i); } return 0; } 宜しくお願いします。

  • 特殊なfor文について

    SJC-P 問題集 問13の疑問より for文について教えてください。 一般的なfor文だと次の形だと思うのですが for(int i = 0; i < 5; i ++){ //5回ループする } Animal [] animals = { new Animal(), new Cow() }; for( Animal a : オブジェクト配列animals ){ a.saySomething(); } のような場合、このfor文は 「オブジェクト配列の中にanimalsがあるまでの間、ループする」という意味を指しているのでしょうか? for( クラス名 オブジェクト名 : オブジェクト配列) の一文にある「:」← の役割は何なのでしょうか?

    • ベストアンサー
    • Java
  • for文について

    以下のプログラムにおいて, for文の末尾にセミコロンがついているタイプ( for(...); ) のfor文の制御の流れは,セミコロンがついていないタイプ( for(...) ) と何が違うのでしょうか? for文の末尾にセミコロンがないタイプのものしか知らないため, セミコロンがつくことで流れに何が変化するか知りたいです. 御存知の方がいらしたら,教えてください. 【出力結果】 forの末尾にセミコロンがある 2100 forの末尾にセミコロンがない 700 /*+++++++ ソース ++++++++*/ #include <stdio.h> int main() {  int s_tb1[3] = {60,100,150};  int mg_tb[3] = {1,3,4};  int i,size=80,base=600,mode=1,ext=100;  for(i=0; size>s_tb1[i]; i++);   printf("%d\n", (base+mode*ext)*mg_tb[i] );  return(0); }

  • 簡単なfor文

    #include <stdio.h> int main(void) { int n; int i; for(n=0 ;n<10;n++){ for(i=0; i<=n ;i++){ printf("*"); } printf("\n"); } return(0); } こういったプログラムを実行すると、以下のように表示されるのですがなんででしょうか? * ** *** 以下略 自分の考えですと、*は毎回一つしか表示されずに改行されると思うのですが・・・ * * * * 以下略 i個分の*を表示するなどという指示をプログラムはなされていないと思うのですがなぜなんでしょうか? 一つ目のfor文では10回ループが繰り返され改行 二つ目のfor文で*を永遠に表示 といった僕の解釈ではおかしいですよね。 当方C言語初心者で、周りに聞く人がいないため教えていただけると非常に助かりますm(__)m

  • for文の()内のメソッドは?

    普通、String型の変数strの長さを知りたいと 思ったら str.length() で調べると思うのですが、 for 文中では、こういう風になりますよね‥‥ for (int i=0; str.length; i++) ただ、while文の()内では、ちゃんとlengthメソッドの 後に()を付けていたはず。 for文の場合の()は特殊なのかなと思うのですが、 これってどういう理屈なのでしょうか? # ;(セミコロン)がどうも怪しい感じなのですが。

    • ベストアンサー
    • Java
  • for文

    for文なのですが、 scanfで得た、 iを for文のi--で、一づつへらしてますが、 0でfor文がおわりますが 0で終わりの記述がない気がするんですが、 どうしてでしょか? int main(void) {    int i;    printf("正の整数を入力してください。\n");    scanf("%d",&i);    for( ; i ; i--)    printf("qが入力されました。\n");    return 0; }

  • for文while文の無限ループの違いについて

    for文の無限ループ for(; ;) と、 while文の無限ループ while(1) は、 どのように違うのですか? 処理速度やCPU負荷を考慮して、 どちらを使用するか悩んでいます。 よろしくお願いします。

  • perl:ループのカウンタ変数の値を保持したい。

    While文のループのなかにfor文でループをまわしているスクリプトなのですが、 forの中でカウンタ変数をつくり、ループ回数を計測しております。 またforの中である条件を満たした際に、lastでforを抜け、引き続きWhileのループを継続するという処理をしております。 $i=0; While(○○){ 処理1    for(××){ 処理2 $i++;      if($i >=100){  処理3       last; } } } ここで、一度for文のif文で一度forループを抜け、Whileでループをし、またforループに突入した際に、前回forループでカウントした$iの値を保持したまま、そのつづきから$iのカウンタを動作させたいのですが、$iの値はforループを抜けるとリセットしてしまいます。 このような場合、どうすれば$iの値を保持できますでしょうか。 お詳しい方、宜しくお願い致します。 ※ネストがうまく表現できず、みずらくてスミマセン。

    • ベストアンサー
    • Perl