【TypeScript】while文の活用コード7選

初心者向けTypeScript while文学習ガイドTypeScript
この記事は約14分で読めます。

 

【サイト内のコードはご自由に個人利用・商用利用いただけます】

この記事では、プログラムの基礎知識を前提に話を進めています。

説明のためのコードや、サンプルコードもありますので、もちろん初心者でも理解できるように表現してあります。

基本的な知識があればカスタムコードを使って機能追加、目的を達成できるように作ってあります。

※この記事は、一般的にプロフェッショナルの指標とされる『実務経験10,000時間以上』を凌駕する現役のプログラマチームによって監修されています。

サイト内のコードを共有する場合は、参照元として引用して下さいますと幸いです

※Japanシーモアは、常に解説内容のわかりやすさや記事の品質に注力しております。不具合、分かりにくい説明や不適切な表現、動かないコードなど気になることがございましたら、記事の品質向上の為にお問い合わせフォームにてご共有いただけますと幸いです。
(送信された情報は、プライバシーポリシーのもと、厳正に取扱い、処分させていただきます。)

はじめに

今回の記事では、プログラミングの基礎とも言える「while文」の使い方をTypeScriptの文脈で解説します。

初心者の方でも安心して取り組めるよう、明解かつ詳細な説明を心掛けています。

今回は、TypeScriptの基本概念から、while文の使い方までを徹底的に解説します。

●TypeScriptとは

TypeScriptはMicrosoftによって開発されたJavaScriptのスーパーセットです。

JavaScriptとの互換性を保ちつつ、型安全性やオブジェクト指向プログラミングの機能を強化しています。

TypeScriptの基本的な特徴について、初心者の方が理解しやすいように解説します。

○言語の特徴

TypeScriptは、JavaScriptに型システムといくつかの他の機能を追加することで、開発者がより堅牢かつ管理しやすいコードを書くことを可能にします。

主な特徴は次の通りです。

□型安全性

変数や関数の引数に型を指定できるため、型関連のエラーを早期に検出できます。

これにより、バグの少ないコードを書くことができます。

□高度なツールサポート

TypeScriptは高度なエディタやIDEと連携が可能であり、自動補完やリファクタリングなどの機能が利用できます。

□オブジェクト指向プログラミングの強化

クラスやインターフェイスなどのオブジェクト指向プログラミングの機能が強化されており、大規模なアプリケーションの開発が効率的に行えます。

○なぜTypeScriptを学ぶべきか

JavaScriptの拡張版であるTypeScriptを学ぶことで、数多くの利点があります。

いくつかの主要な理由を見てみましょう。

□エラーの早期発見

TypeScriptでは、コードの記述時に型エラーを発見することができます。

これにより、実行時のエラーが減少し、デバッグが容易になります。

□ドキュメントの代替

型注釈はコードに関する追加情報を提供するため、ドキュメントの一部として機能します。

これにより、コードの読み手がコードの動作をより簡単に理解できます。

□改善された協力

TypeScriptの型システムは、チームメンバーが共同で作業する際に、互いのコードを理解しやすくします。

□コミュニティとサポート

TypeScriptは大きなコミュニティと広範なサポートを受けているため、学習リソースやツールが豊富です。

□転職市場との相性

現在、TypeScriptは技術市場で非常に需要が高まっています。

そのため、TypeScriptのスキルは就職や転職を考える際に有利となります。

●while文の基本

プログラミングにおいて、特定の条件が満たされている間、一定の操作を繰り返す構文があります。その一つが「while文」と呼ばれるものです。

ここでは、TypeScriptでのwhile文の基本について深堆して解説します。

○while文の概念

while文は、「ある条件が真である限り繰り返し処理を行う」という構造を持つ制御フローの一部です。

これにより、プログラマーは繰り返しを行う処理を簡潔に記述することができます。

while文の基本的な形式は次のようになります。

while (条件式) {
  // 条件式が真である間、ここに書かれたコードが実行されます。
}

このコードを実行すると、条件式が真である限り、ブロック内のコードが繰り返し実行されます。

○TypeScriptにおけるwhile文の構文

次に、TypeScriptでのwhile文の構文を具体的に見ていきましょう。

□基本形

TypeScriptでのwhile文の基本的な形は上述した通りですが、具体的なサンプルコードとしては次のような形になります。

let count = 0;

while (count < 5) {
  console.log(`現在のカウント: ${count}`);
  count++;
}

このコードでは、変数countを0からスタートさせ、countが5未満である間、countの現在の値をコンソールに表示しつつ、countを1ずつ増加させています。

このコードを実行すると、0から4までの数字がコンソールに表示される結果となります。

□使い方のポイント

while文を使用する際のポイントをいくつか挙げます。

①条件式を適切に設定

条件式が常に真と評価されると無限ループとなりますので、適切な条件を設定しましょう。

②ループ内で条件が変化

ループ内で条件式に影響する変数の値が変化するようにしましょう。

そうしないと、無限ループの危険があります。

③ブロック内のコードは効率的に

while文のブロック内には、効率的なコードを記述するよう心掛けましょう。

無駄な処理が増えるとプログラムのパフォーマンスが低下します。

●while文の使い方

while文はプログラミングにおいて非常に基本的かつ重要なコントロールフロー構造です。

ここでは、while文の基本的な使い方から、条件式の変更までのプロセスを段階的に学んでいきます。

○while文を使った基本的なプログラム作成

プログラミングにおいて、while文は一定の条件が真である間、特定のコードブロックを繰り返し実行するためのコントロールフロー構文です。

ここでは、基本的なwhile文の作成方法を学び、その後で条件式を変更する方法についても解説していきます。

□サンプルコード1:単純なループ処理

まずは、最も単純なwhile文から見ていきましょう。

下記のコードは、変数iが10未満である間、iの値をコンソールに出力し、iの値を1増加させるというものです。

let i = 0;
while (i < 10) {
    console.log(i);
    i++;
}

このコードでは、iが0から始まり、iが10未満の間、コンソールにiの現在の値を出力しています。

そして、iの値を1増加させてループが繰り返されます。

このコードを実行すると、0から9までの数値が順にコンソールに表示されます。

このプログラムは非常にシンプルですが、while文の基本的な構造を理解するための良い出発点となります。

基本的な流れとしては、初期化→条件判定→コードブロック実行→条件の更新、というサイクルが繰り返されます。

□サンプルコード2:条件式の変更

次に、while文の条件式を変更し、その影響を観察します。

下記のコードでは、while文の条件式を変更して、iの値が5より大きくなるまでループを続けます。

let i = 0;
while (i <= 5) {
    console.log(i);
    i++;
}

このコードを実行すると、iの値が0から5までの数値が順にコンソールに表示されることが確認できます。

条件式を変更することで、ループの実行回数を変更することが可能です。

このような方法で、様々なシナリオに対応する柔軟なプログラムを作成することができます。

○よくあるエラーとその対処法

プログラムでは、エラーという障害と共に進むのが一般的です。

特に初心者がTypeScriptのwhile文を使用する際、いくつかの一般的なエラーが発生する可能性があります。

今回は、これらのエラーとそれらを効果的に解決するための手順に焦点を当てて解説します。

□サンプルコード3:無限ループの回避

まず最初に、無限ループの回避について理解しておきましょう。

無限ループはプログラムが停止せず、永遠に実行し続ける現象です。

これはCPUのリソースを無駄に消費し、プログラムが応答しなくなる原因となります。

下記のサンプルコードでは、while文の条件式が常にtrueと評価されるため、無限ループが発生します。

while (true) {
    console.log('このループは終了しません');
}

このコードではtrueを使って無限ループを作成しています。

このコードを実行すると、コンソールに無限にメッセージが表示された結果、ブラウザがフリーズします。

修正方法は、条件式に変数を導入し、ループ内のどこかでその変数の値を変更することです。

下記のコードは、無限ループを回避する方法を表しています。

let counter = 0;
while (counter < 5) {
    console.log('カウンターの値: ' + counter);
    counter++;
}

このコードでは、counter変数を使ってループの終了条件を設定しています。

このコードを実行すると、コンソールに0から4までの数字が表示された後、ループが終了します。

□サンプルコード4:条件式の工夫

次に、条件式の工夫に関して解説します。

条件式を工夫することで、プログラムの効率や可読性を向上させることができます。

下記のサンプルコードは、条件式に複数の条件を組み合わせる方法を示しています。

let i = 0;
let sum = 0;

while (i < 10 && sum < 20) {
    sum += i;
    console.log('現在の合計: ' + sum);
    i++;
}

このコードではi変数とsum変数を使って、複数の条件を組み合わせた条件式を作成しています。

このコードを実行すると、sumの合計が20未満かつiが10未満の間、ループが続行します。

途中でいずれかの条件が満たされなくなると、ループが終了します。

ご依頼いただいた範囲の記事の一部を作成いたしました。ご確認ください。

●while文の応用例

初心者がTypeScriptでwhile文を更に効果的に使いこなすためには、基本的な知識を一歩進め、応用例を学ぶことが大切です。

ここでは、複雑な条件式の利用や、while文内での関数の利用といった応用例を取り上げ、それぞれのサンプルコードとともに、詳細な解説を行います。

○さらなるプログラムの強化

while文を利用することで、プログラムの機能を強化し、より複雑な操作が可能になります。

それでは、いくつかのサンプルコードを通じて、while文の高度な利用方法を解説していきます。

□サンプルコード5:複雑な条件式の利用

初めに、複雑な条件式を利用したwhile文の例を見ていきましょう。

このコードでは、複数の条件を組み合わせてループを制御しています。

let i = 0;
let j = 10;

while (i < 10 && j > 0) {
  console.log(`i: ${i}, j: ${j}`);
  i++;
  j--;
}

このコードでは、iが10未満かつjが0より大きい間、ループを実行しています。

そして、ループの各ステップで、iは1増加し、jは1減少します。

このコードを実行すると、i: 0, j: 10から始まり、i: 9, j: 1までの範囲で出力が得られることになります。

□サンプルコード6:while文内での関数の利用

次に、while文内で関数を利用する方法を見ていきましょう。

関数を活用することで、コードの再利用性が高まります。

function greet(name: string) {
  console.log(`Hello, ${name}!`);
}

let names = ["Alice", "Bob", "Charlie"];
let index = 0;

while (index < names.length) {
  greet(names[index]);
  index++;
}

このコードでは、greetという関数を作成し、while文内で呼び出しています。

namesという配列に格納された各名前に対して、greet関数が呼び出され、”Hello, Alice!”, “Hello, Bob!”, “Hello, Charlie!”という結果が得られます。

このコードを実行すると、配列内の各要素が一度ずつ挨拶される結果が得られます。

○カスタマイズ方法

初心者でも分かるTypeScriptのwhile文活用法の続きを読み進めていただき、ありがとうございます。

ここでは、while文をカスタマイズする方法を、詳細な説明とサンプルコードを交えながらご紹介します。

さっそく見ていきましょう。

□サンプルコード7:カスタム関数の作成と利用

カスタム関数を作成し、while文内でその関数を利用する方法を解説します。

下記のサンプルコードを参照ください。

function は5の倍数(num: number): boolean {
    return num % 5 === 0;
}

let i = 1;
while (i <= 100) {
    if (は5の倍数(i)) {
        console.log(`${i}は5の倍数です`);
    }
    i++;
}

このコードでは、は5の倍数というカスタム関数を作成しています。

この関数は数値を引数として受け取り、その数値が5の倍数かどうかを判定します。

while文はiが100以下の間、繰り返し処理を行います。

そして、各繰り返しの中でカスタム関数は5の倍数を用いて、iが5の倍数かどうかを確認します。

このコードを実行すると、1から100までの間で5の倍数である数字について「〇〇は5の倍数です」というメッセージがコンソールに表示されることになります。

さらに、このカスタム関数の活用として、5の倍数かどうかを判定する関数をさらに拡張して、任意の倍数を判定する関数を作成することもできます。

function は倍数か(num: number, divisor: number): boolean {
    return num % divisor === 0;
}

let i = 1;
while (i <= 100) {
    if (は倍数か(i, 3)) {
        console.log(`${i}は3の倍数です`);
    }
    i++;
}

このコードでは、は倍数かという新しいカスタム関数を作成しています。

この関数は2つの引数を受け取ります: 1つは判定する数値、もう1つはその数値が何の倍数かを判定するための数値です。

その後、while文内でこの新しい関数を使用し、3の倍数である数値を判定しています。

このコードを実行すると、1から100までの間で3の倍数である数字について「〇〇は3の倍数です」というメッセージがコンソールに表示されることになります。

●注意点と対処法

TypeScriptでwhile文を使用する際にはいくつかの注意点があります。

特に初心者の方が陥りやすい問題点とその対処法を詳しく説明します。

さらに、ここではサンプルコードを交えて、問題の発生を防ぐためのテクニックを提供します。

○無限ループに注意

while文を使用する際の最も重要な点は、無限ループに陥らないよう注意することです。

無限ループは条件式がいつまでもfalseにならないため、プログラムが永遠にループを続けてしまう現象を指します。

このような状況は、プログラムのパフォーマンス低下やクラッシュを引き起こす可能性があります。

例として、次のサンプルコードでは、while文の条件式が常にtrueであるため無限ループが発生します。

コードの内容を確認し、その後、問題を修正する方法を解説します。

let i = 0;
while (true) {
    console.log(i);
    i++;
}

このコードを実行すると、iの値が無限に増加し続け、コンソールに無限に数字が出力されます。

この問題を回避するには、条件式を適切に設定し、ループがいずれは終了するようにする必要があります。

次の改良版コードでは、iが10に達した時点でループが終了するようにしています。

let i = 0;
while (i < 10) {
    console.log(i);
    i++;
}

このコードを実行すると、0から9までの数字がコンソールに出力され、その後ループは終了します。

このような方法で無限ループを回避できます。

○条件式の重要性

while文を利用する際には、条件式の設定が非常に重要です。

条件式はループの実行を続けるべきかどうかを判断する基準となります。

適切な条件式を設定することで、期待した動作を得ることができます。

条件式の設定方法を示すためのサンプルコードを紹介します。

let i = 0;
while (i < 5) {
    console.log("現在のiの値は " + i + " です。");
    i++;
}

このコードを実行すると、”現在のiの値は 〇〇 です。”という文が5回コンソールに出力されます。

0から4までの値が〇〇の部分に表示されます。

このように、while文の条件式を慎重に設定することで、無限ループを回避し、期待する動作を得ることができます。

特に初心者の方は、条件式の設定に注意を払い、期待する動作を確認するためのテストを行うことをお勧めします。

また、条件式の変更や更新を行う際にも、新しい条件が期待した動作を引き起こすかどうかを確認することが重要です。

まとめ

初心者向けに提供した本ガイドでは、TypeScriptのwhile文の活用方法を7つのステップで段階的に紹介しました。

まず基本的な知識からスタートし、TypeScriptの特性やwhile文の基本構文を解説しました。

失敗を恐れず、色々なコードを試してみてください。

そして、徐々にスキルアップを目指していきましょう。

本ガイドが皆さんの学びの助けとなれば幸いです。