C#ラーニング2(ブランチとループ(下))
2130 ワード
ブランチとループ(下)
ループ
定義:ループは、文を繰り返し実行します.
1.doサイクル
doループは、ループとしてマークされたコードを実行し、ブールテストを行い、trueであれば再びこのコードを実行し、結果がfalseであればループを終了する方法で実行される.
doサイクルの構造は以下の通りである.
do
{
} while();
2.whileサイクル
whileサイクルはdoサイクルと非常に類似しているが,whileサイクルにおけるブールテストは最後ではなくサイクル開始時に行われるという明らかな違いがある.テスト結果がfalseの場合、ループは実行されません.プログラムはループ後のコードに直接ジャンプします.
例:銀行利息の計算 static void Main(string[] args)
{
double balance, interestRate, targetBalance;
Console.WriteLine("What is your current balance?");
balance = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("What is your current annual interest rate (in %)?");
interestRate = 1 + Convert.ToDouble(Console.ReadLine()) / 100.0;
Console.WriteLine("What balance would you like to have?");
targetBalance = Convert.ToDouble(Console.ReadLine());
int totalYears = 0;
while (balance < targetBalance)
{
balance *= interestRate;
++totalYears;
}
//Console.Clear();
Console.WriteLine("In {0} year{1} you'll have a balance of {2}.",
totalYears, totalYears == 1 ? "" : "s", balance);
if (totalYears == 0)
Console.WriteLine("To be honest,you really didn't need to use this calculator.");
Console.ReadKey();
}
3.forサイクル
forループは、指定した回数を実行し、自分のカウンタを維持することができます.forループの動作形式はwhileと同じですが、そのフォーマットは読みやすく、文法はループのすべてのルールを1つの場所に含んでいます.
単純な例:
for(int i = 1;i<=10;++i)
{
Console.WriteLine("{0}",i);
}
4.循環中断
break--すぐにサイクルを終了します.
continue--現在のループをすぐに終了します(次のループを続行します).
goto————ループから飛び出してもいいですが、使わないほうがいいです.
return————ループとその含む関数を飛び出します.
continueの例:
int i;
for(i=1;i<=10;i++)
{
if((i%2)==0)
continue;
Console.WriteLine(i);
}
iを2で割った余りが0であればcontinue文は現在のループを終了するので、1,3,5,7,9のみが表示されます.
static void Main(string[] args)
{
double balance, interestRate, targetBalance;
Console.WriteLine("What is your current balance?");
balance = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("What is your current annual interest rate (in %)?");
interestRate = 1 + Convert.ToDouble(Console.ReadLine()) / 100.0;
Console.WriteLine("What balance would you like to have?");
targetBalance = Convert.ToDouble(Console.ReadLine());
int totalYears = 0;
while (balance < targetBalance)
{
balance *= interestRate;
++totalYears;
}
//Console.Clear();
Console.WriteLine("In {0} year{1} you'll have a balance of {2}.",
totalYears, totalYears == 1 ? "" : "s", balance);
if (totalYears == 0)
Console.WriteLine("To be honest,you really didn't need to use this calculator.");
Console.ReadKey();
}