4

ループの作成と設計に関する優れたチュートリアルを探しています。ループの基本は理解していますが、入れ子になったループは多くの問題を引き起こします。あなたとアイデアを与えるために、以下の次のパターンは私が理解するのがちょっと難しかった.

1
12
123
1234
12345
123456

4

7 に答える 7

7

ループ

ループは、一連の命令を複数回実行できるようにする構造です。いくつかのループ構造があります:

ゼロ以上

これらのループは、反復の開始時にチェックが行われるため、0 回以上実行されます。while ループがその例です。

1つ以上

これらのループは、反復の最後にチェックが行われるため、少なくとも 1 回は実行されます。do while ループがその例です。

カウンター付きループ

これらのループには、特定の数値から別の数値までカウントするカウンターがあります。数値はループ内で使用できます (たとえば、配列のフィールドにアクセスする場合)。

イテレータによるループ

これらのループは、反復子を使用して特定の構造体をループします。

無限ループ

これらのループには終わりがありません。しかしもちろん、永遠に続くものはありません。そのため、ループには多くの場合、隠されたメカニズムが含まれています。

ネストされたループ

単一のループを理解している場合、ネストされたループは難しい場合があります。ただし、一度に 1 つのループに集中する必要があります。あなたの例を見てみましょう:

1
12
123
1234
12345
123456

わかりました、最初に行を見てみましょう。

  • 最初の行には単一の 1 があります
  • 2 行目は 1 から 2 までカウントします
  • 3 行目は 1 から 3 まで数えます
  • ...

一般に、n 番目の行は 1 から n まで数えます。

いいえ、個別のラインはありません。しかし、ここですべての行を見てみましょう。

  • 最初のものは n=1 です
  • 2番目はn = 2です
  • 3 番目は n=3 です
  • ...

うーん、外側のループのループ カウンターを内側のループの n として使用できます。

for n = 1 to 6
  s = ''
  for i = 1 to n // use the loopcounter of the outer loop
    s = s + char(i)
  end for
  out s
end for
于 2009-01-19T23:17:07.490 に答える
1

チェックアウト:

一般的な(言語に依存しない)用語では、基本的なロジックは非常に単純です。それがより複雑になる可能性があるのは、内部ループが早期に終了するかどうかと、ブレークの方法です。外側のループが次の値に移動したり、外側のループを完全に終了したりする可能性があります。

これを学ぶための最良の方法は、さまざまなケースを試してそれらがどのように動作するかを確認し、ループを終了する方法を確認することです。

于 2009-01-19T23:10:22.137 に答える
1

これらはどうですか:

ネストされたループ

ネストされたループの力

または、YouTube の「SQL 結合、ネストされたループ、およびそのすべてを 6 分以内に」( http://www.youtube.com/watch?v=SmDZaH855qE )

于 2009-01-19T23:18:16.537 に答える
0

プログラミングを学んでいたときに、「ループデザイン」を中心としたチュートリアルを見たのを覚えていません。さまざまな問題やアルゴリズムに取り組み始めるだけで、ループを把握できます。行列の問題を探してください。たとえば、そこにネストされたループが必要になります...

于 2009-01-19T22:52:59.130 に答える
0

このテーマに関するチュートリアルは知りませんが、Googleを試してみることをお勧めします。また、あなたがあなたの例を理解することができたという事実は、おそらくあなたが練習を必要とするほどチュートリアルを必要としないことを意味します。ネストされたループは、最初に遭遇したときに多少気が遠くなるようなものです。関連する概念である再帰に関連するリファレンス/チュートリアルを探すこともできます。練習すれば完璧になることを忘れないでください!

于 2009-01-19T22:53:18.363 に答える
0

MITコース資料をご覧ください。また、 Safariサブスクリプションを取得することも検討してください。これは、優れた学習本を入手するための安価な方法です。

このMITコースは、Pythonwikiのループを指しています。

紙の上でそれを解決し、変数をリストすることは、これがどのように機能するかを学ぶのに役立つことがわかりました。

于 2009-01-19T22:53:50.080 に答える
0
declare
s varchar2(10);
begin
  for n in 1..5 loop
    s:='';
    for i in 1..n loop
      s:=s||(i);
    end loop;
    dbms_output.put_line(s);
  end loop;
end;
于 2009-09-29T20:30:54.700 に答える