for循环
// 讲解for语句,循环语句,主要用来循环执行多次相同的代码。
Console.WriteLine("我爱C#");
Console.WriteLine("我爱C#");
Console.WriteLine("我爱C#");
Console.WriteLine("----------------------------------");
// i = 0,i = 1,i = 2
// for语句构成:1. 初始化语句int i = 0; 2. 判断语句i<3; 3. for循环体 4. 累加语句
// 执行的顺序:
// a.初始化语句先执行,且只会执行一次。
// b.再执行判断语句,判断语句满足,则执行for循环体,不满足,则退出for循环
// c.执行for循环体后,再执行累加语句。
// 注:b,c在i值发生变化时,会循环执行,只到判断条件不满足,才结束for循环。
// for循环执行几次(判断语句执行几次?)?for循环体执行几次?去找判断条件满足几次?3次
for (int i = 0; i < 3; i++)
{
Console.WriteLine("我爱C#" + i.ToString());
}
Console.WriteLine("循环体外的语句");
Console.WriteLine("----------------------------------");
// 初始化语句,变量名称一般命名成i,j,m,n
for (int a = 0; a < 3; a++)
{
Console.WriteLine("我爱C#" + a.ToString());
}
Console.WriteLine("----------------------------------");
int m = 0; // 初始化语句可以从()中移出到for外面。平时不建议把初始化语句移出。
for (; m < 3; m++)
{
Console.WriteLine("我爱C#" + m.ToString());
}
Console.WriteLine(m); // 3 初始化语句并不是只能在for循环体中使用。
// 变量要先声明,再使用,所以for的初始化语句一定要移出到for语句的上面。
int b = 10;
Console.WriteLine(b);
Console.WriteLine("----------------------------------");
int n = 2; // 如果初始化语句移出到for外,不能在同一个命名空间中重名。所以此处不能再以m命名
for (; n >= 0; n--)
{
Console.WriteLine("我爱C#" + n.ToString());
}
Console.WriteLine(n);
Console.WriteLine("----------------------------------");
for (int i = 2; i >= 0; i--)
{
Console.WriteLine("我爱C#" + i.ToString());
}
//Console.WriteLine(i); // 报错:初始化语句没有移出到for外,i只能在循环体中使用。
Console.WriteLine("----------------------------------");
// continue跳出当前循环, break中断循环
for (int i = 0; i < 3; i++)
{
if (i == 1)
{
// 多次循环时,如果有其中一次|多次循环,开发者想特殊处理,用到continue关键字。
Console.WriteLine("特殊处理了i=1的情况");
// continue; // 继续,跳出当前的此次循环,继续下一次循环
break; // break中断循环后,其他的循环不再执行,for提前结束
}
Console.WriteLine("我爱C#" + i.ToString());
}
// 转换首字母大写
string word = "hello"; // Hello
string newWord = "";
for (int i = 0; i < word.Length; i++)
{
char letter = word[i];
if (i == 0)
{
Console.WriteLine(new string(letter,1).ToUpper());
newWord += new string(letter, 1).ToUpper();
continue;
}
Console.WriteLine(new string(letter, 1));
newWord += new string(letter, 1);
}
Console.WriteLine(newWord);
/*
* for重点:
* 1. for语句结构四部分。
* 2. 执行顺序。
* 3. 细节(初始化执行次数,放的位置,判断语句执行次数,循环体执行的次数等);
* 4. for配合break,continue语句使用。
*/
其他循环
// 任何的for循环和while循环可以互转。
// while当...时候...
int i = 0; // 初始化语句,和for语句相比,初始化语句必须放到()的外面
while (i < 3) // 判断语句
{
// 循环体
Console.WriteLine("我爱C#" + i.ToString());
// 累加|累减语句,切记:不能忘记此语句,忘记会陷入死循环。
i++;
//i = i + 1;
}
Console.WriteLine("--------");
int m = 2;
while (m >= 0)
{
Console.WriteLine("我爱C#" + m.ToString());
m--;
}
Console.WriteLine("--------");
int n = 2;
while (n >= 0)
{
if (n == 1)
{
Console.WriteLine("特殊处理一下i=1的情况");
//n--;
//continue; // 跳转当前的while循环,继续下一次循环。需要下次循环时,切记需要执行累加|累减语句。
break; // 中断while循环。中断循环前不需要累加|累减语句。
}
Console.WriteLine("我爱C#" + n.ToString());
n--;
}
Console.WriteLine("--------");
// for语句,while语句都有可能一次循环都不执行。
// 只要判断语句第一次都不满足,for语句和while语句一次循环也不执行。
int j = 0;
while (j < 0)
{
Console.WriteLine("一次循环也不执行!");
j++;
}
Console.WriteLine("--------");
for (int k = 0; k < 0; k++)
{
Console.WriteLine("一次循环也不执行!");
}
Console.WriteLine("--------");
// 但do...while...语句可以保证循环只少有一次可以执行。
int k1 = 0; // 初始化语句
do
{
// 循环体
Console.WriteLine("不论判断条件是否满足,我先执行一次再说");
// 累加|累减语句
k1++;
} while (k1 < 0); // 判断语句
// foreach语句主要用来循环数组,后面讲数组时再回头详细讲解
int[] nums = { 1, 2, 3, 4, 5};
Console.WriteLine(nums[0]); // 取第一个元素 1 [index]索引
string[] strs = { "abc", "dsh", "张三" };
Console.WriteLine(strs[2]); // 取第三个元素 [index]索引
Console.WriteLine("--------");
// foreach语句可以认为是for的优化。
// 能使用foreach语句的,都可以转化成for和while。
// 但for或者while语句不一定能转换成foreach。foreach一般用来循环数组,集合。
// foreach中没有初始化语句,判断语句,累加|累减语句。
foreach (string item in strs)// in 关键字, strs数组中的某一项
{
Console.WriteLine(item);
}
Console.WriteLine("--------");
foreach (int item in nums)
{
if (item == 3)
{
// continue;
break;
}
Console.WriteLine(item);
}