#region while循环
*
* 语法结构
* while(bool类型表达式)
* {
* 循环执行的代码;
* }
* 执行流程:首先执行bool类型表达式,如果成立那么执行while大括号中的代码,count叫做循环增量,while中的代码叫做循环体。
*
打印1-100之间的数并输出
int count=0,sum=0;
while (count<=100)
{
sum += count;
count++;
Console.WriteLine(count);
}
练习:从控制台输入一个正整数,并进行反转,输出反转之后的结果987 789
Console.WriteLine("请输入一个正整数:");
int a = int.Parse(Console.ReadLine());
int b = 1;
int c = 0;
int sum = 0;
while (a%b!=a)
{
c = a b;
b = b * 10;
sum = sum * 10 + c % 10;
}
Console.WriteLine(sum);
break关键字,结束循环体继续执行循环后面的代码,通常和if使用。
int monsterHp = 100;
while (monsterHp>0)
{
monsterHp -= 10;
Console.WriteLine(monsterHp);
当怪物血量不高于50时进行秒杀
if (monsterHp<=50)
{
Console.WriteLine("怪物被斩杀了");
break;
}
}
continue,遇到该关键字结束本轮循环,继续下一轮循环。
int monsterHp = 100;
while (monsterHp>0)
{
if (monsterHp==50)
{
monsterHp -= 1;
continue;
}
monsterHp -= 10;
}
#endregion
#region do...while循环
*
* 语法格式:
* do
* {
* 循环体;
* }while(bool类型表达式);
* 无论条件满不满足循环体都会执行一次,然后在判断bool表达式是否成立,成立继续执行循环,否则跳出。
*
int count = -1;
do
{
Console.WriteLine("干饭");
count++;
} while (count>0);
练习:sum=1+2+3+4+。。。。+n,求sum不超过10000的最大整数数值和当前N的值
int sum = 0;
int n = 1;
do
{
sum += n;
Console.WriteLine(n);
Console.WriteLine(sum);
n++;
} while (sum<=10000);
sum = sum - n+1;
n = n - 2;
Console.WriteLine("{0} {1}",sum,n);
#endregion
#region for循环
*
* 语法结构:
* for(循环变量初始化;循环条件;循环变量变化)
* {
* 循环体;
* }
* 1.先执行循环变量初始化
* 2.执行循环条件,如果条件成立执行循环体,否则结束循环
* 3.执行完循环体后执行循环变量的变化
* 4.循环变量变化之后返回第二步
*
int sum = 0;
for (int i = 1; i <= 100; i++)
{
Console.Write("{0,-5}",i);
sum += i;
}
Console.WriteLine();
Console.WriteLine(sum);
Console.WriteLine("请输入数字:");
string str1 = Console.ReadLine();
for (int j = 0; j < str1.Length; j++)
{
Console.Write(str1[str1.Length-1-j]);
}
Console.WriteLine();
for (int i = 0; i <= 100; i++)
{
if (i%7!=0&&i 10!=7&&1%10!=7)
{
Console.Write("{0,-4}",i);
}
}
Console.WriteLine();
int sum = 0;
for (int j = 0; j < 50; j++)
{
if (j%2==0)
{
sum =sum+(2*j+1);
}
else
{
sum =sum-(2*j+1);
}
}
Console.WriteLine(sum);
*
* 循环嵌套
*
外层循环控制的行数
for (int i = 0; i < 3; i++)
{
j=0 i<2
j=1 i<3
j=2 i<4
内层循环控制的列数
for (int j = 1; j < i+2; j++)
{
Console.Write(j + " ");
}
内层循环执行打印123完毕后 执行换行操作
Console.WriteLine();
}
for (int i = 1; i < 10; i++)
{
for (int j = 1; j < i+1; j++)
{
Console.Write("{0}×{1}={2,-5} ",j,i,i*j);
}
Console.WriteLine();
}
#endregion
#region 一维数组
*
* 数组:相同数据类型的成员组成的一组数据。也就是说数组中的每个数据类型一样。数组中的每一个数据都叫一个元素。
* 一维数据的声明:数据类型名[]数组名
*
*
* 数组的初始化:动态初始化和静态初始化
* 1.第一种动态初始化
* 数据类型名[] 数据名 = new 数据类型名[数组的长度];
* 数组类型的数组,元素默认值是0;
* 布尔类型的数据,默认值是false;
* 字符串类型的数据,默认值是null;
*2.第二种动态初始化
* 数据类型[] 数组名 = new 数据类型[数组长度]{元素1,元素2};
*3.第三种动态初始化
* 数据类型[] 数组名 = new 数据类型[]{元素1,元素2};
* 数组的长度由给定的元素个数来决定。
*
*4.静态初始化
* 数据类型[] 数组名 = {元素1,元素2,元素3};
*
第一种动态初始化
int[] scores = new int[] { };
第二种动态初始化
int[] ages = new int[5] { 18, 20, 21, 19, 30 };
静态初始化数组
int[] levels = {0,99,100,888,999 };
*
* 数值的访问,数组中元素的索引是从0开始的,如果一个数据有3个元素,那么访问方式为array[0]为第一个元素,array[1]为第二个元素,array[2]是第三个元素。如果索引超出数组长度,抛出异常组越界。
*
修改指定下标对应的元素值
levels[0] = 10;
int[] intArr = {2,3,5,7,11,13,17 };
int sum = 0;
for (int i = 7; i>0; i--)
{
sum += intArr[i - 1];
Console.WriteLine(intArr[i-1]);
}
Console.WriteLine("所有元素的和为:{0}",sum);
int intArrMax = intArr[0];
int intArrMin = intArr[0];
for (int j = 0; j < intArr.Length; j++)
{
if (intArr[j]>intArrMax)
{
intArrMax = intArr[j];
}
if (intArr[j]<intArrMin)
{
intArrMin = intArr[j];
}
}
Console.WriteLine("最大值为:{0},最小值为:{1}",intArrMax,intArrMin);
int[] intArr = new int[5] {1,2,3,4,5 };
int[] intBrr = {6,7,8,9,10 };
int sumA = 0,sumB = 0;
for (int i = 0; i < 5; i++)
{
sumA += intArr[i];
sumB += intBrr[i];
}
Console.WriteLine("数组A的和为:{0},数组B的和为:{1}",sumA,sumB);
int[]intCrr = new int [5];
for (int j = 0; j < 5; j++)
{
intCrr[j] = intArr[j] + intBrr[j];
Console.WriteLine(intCrr[j]);
}
int[] intDrr = new int[5];
Console.WriteLine("数组D复制数组A:");
for (int k = 0; k < 5; k++)
{
intDrr[k] = intArr[k];
Console.WriteLine(intDrr[k]);
}
#endregion