[C#] for文でのcontinueの使い方

C#のfor文でcontinueを使用することで、現在の反復処理をスキップし、次の反復処理に進むことができます。

continueはループ内で特定の条件が満たされたときに、残りのコードを実行せずに次の反復に移行したい場合に便利です。

例えば、forループ内で特定の条件をチェックし、その条件が真であればcontinueを使って次の反復に進むことができます。

これにより、不要な処理を避け、コードの効率を向上させることができます。

この記事でわかること
  • for文とcontinue文の基本的な組み合わせ方
  • continue文を使った特定条件のスキップ方法
  • ネストされたループでのcontinue文の応用例
  • 配列やリスト処理におけるcontinue文の活用法
  • continue文を用いたエラーハンドリングの手法

目次から探す

for文とcontinue文の組み合わせ

C#のプログラミングにおいて、for文とcontinue文を組み合わせることで、ループ処理をより柔軟に制御することができます。

continue文は、ループ内で特定の条件が満たされた場合に、その後の処理をスキップして次のループの反復に進むために使用されます。

以下では、具体的な例を通じてその使い方を解説します。

continue文を使ったfor文の例

以下のコードは、1から10までの数字をループし、偶数をスキップして奇数のみを表示する例です。

using System;
class Program
{
    static void Main()
    {
        // 1から10までの数字をループ
        for (int i = 1; i <= 10; i++)
        {
            // 偶数の場合は次のループに進む
            if (i % 2 == 0)
            {
                continue;
            }
            // 奇数を表示
            Console.WriteLine(i);
        }
    }
}
1
3
5
7
9

この例では、continue文を使って偶数の処理をスキップし、奇数のみを表示しています。

continue文で特定の条件をスキップする方法

continue文を使用することで、特定の条件を満たす場合にその後の処理をスキップすることができます。

以下の例では、リスト内の負の数をスキップして正の数のみを合計します。

using System;
using System.Collections.Generic;
class Program
{
    static void Main()
    {
        List<int> numbers = new List<int> { 1, -2, 3, -4, 5 };
        int sum = 0;
        // リスト内の数字をループ
        for (int i = 0; i < numbers.Count; i++)
        {
            // 負の数の場合は次のループに進む
            if (numbers[i] < 0)
            {
                continue;
            }
            // 正の数を合計
            sum += numbers[i];
        }
        // 合計を表示
        Console.WriteLine("正の数の合計: " + sum);
    }
}
正の数の合計: 9

この例では、負の数をスキップし、正の数のみを合計しています。

continue文を使った効率的なループ処理

continue文を使用することで、不要な処理をスキップし、ループの効率を向上させることができます。

以下の例では、文字列のリストから特定の文字を含む文字列をスキップして表示します。

using System;
using System.Collections.Generic;
class Program
{
    static void Main()
    {
        List<string> words = new List<string> { "apple", "banana", "cherry", "date" };
        char skipChar = 'a';
        // リスト内の文字列をループ
        for (int i = 0; i < words.Count; i++)
        {
            // 特定の文字を含む場合は次のループに進む
            if (words[i].Contains(skipChar))
            {
                continue;
            }
            // 文字列を表示
            Console.WriteLine(words[i]);
        }
    }
}
cherry

この例では、文字'a'を含む文字列をスキップし、それ以外の文字列を表示しています。

continue文を使うことで、不要な処理を避け、効率的なループを実現しています。

continue文の応用例

continue文は、単純なループ処理だけでなく、さまざまな場面で応用することができます。

ここでは、ネストされたループや配列・リストの処理、エラーハンドリングにおけるcontinue文の活用方法を紹介します。

ネストされたループでのcontinueの使い方

ネストされたループにおいて、continue文を使用することで、特定の条件を満たす場合に内側のループをスキップすることができます。

以下の例では、2次元配列の特定の値をスキップして表示します。

using System;
class Program
{
    static void Main()
    {
        int[,] matrix = {
            { 1, 2, 3 },
            { 4, 5, 6 },
            { 7, 8, 9 }
        };
        // 2次元配列をループ
        for (int i = 0; i < matrix.GetLength(0); i++)
        {
            for (int j = 0; j < matrix.GetLength(1); j++)
            {
                // 値が5の場合は次のループに進む
                if (matrix[i, j] == 5)
                {
                    continue;
                }
                // 値を表示
                Console.Write(matrix[i, j] + " ");
            }
            Console.WriteLine();
        }
    }
}
1 2 3 
4 6 
7 8 9

この例では、値が5の要素をスキップし、それ以外の要素を表示しています。

配列やリストの処理でのcontinueの活用

配列やリストの処理において、continue文を使用することで、特定の条件を満たす要素をスキップすることができます。

以下の例では、リスト内の特定の文字列をスキップして表示します。

using System;
using System.Collections.Generic;
class Program
{
    static void Main()
    {
        List<string> fruits = new List<string> { "apple", "banana", "cherry", "date" };
        string skipWord = "banana";
        // リスト内の文字列をループ
        for (int i = 0; i < fruits.Count; i++)
        {
            // 特定の文字列の場合は次のループに進む
            if (fruits[i] == skipWord)
            {
                continue;
            }
            // 文字列を表示
            Console.WriteLine(fruits[i]);
        }
    }
}
apple
cherry
date

この例では、文字列"banana"をスキップし、それ以外の文字列を表示しています。

continueを使ったエラーハンドリング

continue文は、エラーハンドリングの場面でも役立ちます。

特定の条件でエラーが発生した場合に、その処理をスキップして次の反復に進むことができます。

以下の例では、数値のリストからゼロ除算をスキップして計算を続けます。

using System;
using System.Collections.Generic;
class Program
{
    static void Main()
    {
        List<int> numbers = new List<int> { 10, 0, 5, 0, 2 };
        int divisor = 2;
        // リスト内の数字をループ
        for (int i = 0; i < numbers.Count; i++)
        {
            // ゼロの場合は次のループに進む
            if (numbers[i] == 0)
            {
                Console.WriteLine("ゼロ除算をスキップ");
                continue;
            }
            // 割り算の結果を表示
            Console.WriteLine(numbers[i] / divisor);
        }
    }
}
5
ゼロ除算をスキップ
2
ゼロ除算をスキップ
1

この例では、ゼロ除算をスキップし、他の数値に対して割り算を行っています。

continue文を使うことで、エラーを回避しつつ処理を続行することができます。

よくある質問

continue文を使うとパフォーマンスは向上するのか?

continue文を使用することで、特定の条件を満たす場合にループ内の不要な処理をスキップすることができます。

これにより、ループの反復回数が減少し、結果としてパフォーマンスが向上する場合があります。

ただし、continue文自体がパフォーマンスを直接向上させるわけではなく、スキップする処理の重さやループの回数によって効果が異なります。

最適化の効果を得るためには、continue文を適切に使用することが重要です。

continue文とbreak文の違いは何か?

continue文とbreak文は、どちらもループの制御に使用されますが、その動作は異なります。

  • continue文: 現在のループの反復を終了し、次の反復に進みます。

ループ自体は続行されます。

  • break文: 現在のループを完全に終了し、ループの外に制御を移します。

例:for文内でcontinueを使うと、次の反復に進みますが、breakを使うとループ全体が終了します。

continue文を使う際の注意点は?

continue文を使用する際には、以下の点に注意する必要があります。

  1. 無限ループの回避: continue文を使用することで、特定の条件が常に満たされる場合、無限ループに陥る可能性があります。

ループの条件を適切に設定し、無限ループを避けるようにしましょう。

  1. 可読性の低下: continue文を多用すると、コードの流れが複雑になり、可読性が低下することがあります。

コードの意図を明確にするために、continue文の使用を最小限に抑えるか、コメントを追加して意図を説明することが重要です。

  1. パフォーマンスへの影響: continue文を使用することでパフォーマンスが向上する場合もありますが、必ずしもそうとは限りません。

パフォーマンスの向上を目的とする場合は、実際の効果を測定し、必要に応じて他の最適化手法と組み合わせて使用することを検討してください。

まとめ

この記事では、C#におけるfor文とcontinue文の組み合わせについて詳しく解説し、具体的なコード例を通じてその使い方や応用例を紹介しました。

continue文を活用することで、ループ内の特定の条件をスキップし、効率的な処理を実現する方法を学びました。

これを機に、実際のプログラムでcontinue文を活用し、コードの効率化や可読性の向上に挑戦してみてください。

当サイトはリンクフリーです。出典元を明記していただければ、ご自由に引用していただいて構いません。

関連カテゴリーから探す

  • 条件分岐 (10)
  • 繰り返し文 (10)
  • URLをコピーしました!
目次から探す