C#学习笔记03--循环和一维数组

一.循环(重点)

什么时候用循环?

想让一段代码执行多次, 这段代码可能不一样但是一定有一个规律.

1.while 循环

格式: 

while(循环条件)

{

  循环执行的代码;

}

循环的机制:  当循环条件为真, 执行循环体内的代码, 然后再判断循环条件, 为真一直继续这个过程, 知道判断出循环条件为假, 终止并跳出整个while循环.

注意: 

1.一定要在外界定义一个循环变量;

2.一定要在循环的内部更改循环变量!    

这两点缺一不可, 不然会陷入死循环!!!

练习:

1> 从键盘上随机输入一个数, 求出这个数的位数

Console.WriteLine("请输入一个数:");
int num = int.Parse(Console.ReadLine());
int i = 0;
while (num != 0)
 {
       num /= 10;
        i++;
}
Console.WriteLine(i);

2> 从键盘上随机输入一个数, 求出这个数的二进制

 int i = 1, c = 0;
Console.WriteLine("请输出一个数:");
int num = int.Parse(Console.ReadLine());
while (num != 0)
{
        c += (num % 2) * i;
        i *= 10;
        num = num / 2;

}

2.do while 循环

格式:

do

{

  循环要执行的代码;

}while(循环条件)

练习

1.求使 sum = 1+2+3+4+...+N 小于10000的最大的整数N

int sum = 0, n = 1;
do
{
       sum += n;
       n++;
} while (sum <= 10000);
n--;
sum -= n;
n--;
Console.WriteLine(""+n+sum);
// 要注意这里n必须要减两次, 第一次是因为sum 多加了上一个n的值,导致直接打印出Sum的值超过了10000, n再减一次是因为那个使sum临界的n的值应当是上一个.

 

3.for循环

格式:

for (初始化循环变量; 循环条件; 循环变量自身的变化)

{

  循环执行的代码;

练习

1.打印1-100内既不包含7又不是7的倍数的数

for (int i = 1; i <= 100; i++)
{
       if (!(i % 7 == 0 || i / 10 == 7 || i % 10 == 7))
       {
             Console.WriteLine(i);
        }
}

2.打印1-100的奇数之和

int sum = 0;
for (int i = 1; i <= 100; i++)
{
        if (i % 2 != 0)
        {
               sum += i;
         }
}
Console.WriteLine(sum);

3.2continue 和 break

continue 是用来终止本次循环,   也就是说如果在程序执行的过程中遇到了continue 那么在循环执行的代码中continue之后的代码就不会被执行; 直接跳到一下个循环里, 也就是到了"循环变量自身的变化";

break 是用来终止循环, 在程序执行过程中如果遇到break, 那么不管有没有达到循环结束的条件, 整个循环(本层)都会被停止, 提前结束生命;

 练习

1.从键盘上输入一个数, 判断这个数是否是质数;

int num = int.Parse(Console.ReadLine());
bool isB = false;
for (int i = 2; i < num / 2; i++)
{
       if (num % i == 0)
       {
             isB = true;
             break;
        }
}
if (!isB)
{
      Console.WriteLine("是质数");
}

2.打印图形 

            for (int i = 1; i <= 4; i++)
            {
                for (int j = 1; j <= 4 - i; j++)
                {
                    Console.Write(" ");
                }
                for (int k = 1; k <= i; k++)
                {
                    Console.Write("* ");
                }
                Console.WriteLine();
            }
            for (int i = 3; i >= 1; i--)
            {
                for (int j = 3; j >= i; j--)
                {
                    Console.Write(" ");
                }
                for (int k = 1; k <= i; k++)
                {
                    Console.Write("* ");
                }
                Console.WriteLine();
            }        

3.打印九九乘法表

            for (int i = 1; i <= 9; i++)
            {
                for (int j = 1; j <= i; j++)
                {
                    Console.Write("{0} * {1} = {2}   ", j, i, j * i);
                }
                Console.WriteLine();
            }    

怎么选择这几种循环呢?

知道循环的次数   使用for 循环

知道循环的条件  使用while循环

也不一定非要这个样, 但是这样选择会让代码和逻辑更清晰简洁一点.

二.一维数组

数组的定义:

1.数据类型[] 数组名 = new 数据类型[数组长度] [  {元素1, 元素2, ...}]; 一开始可以不先赋值

2.数组是存放相同数据类型的容器;

3.数组的访问形式是通过下标的形式    数组名[下标]     下标是从0开始的;

4.数组的下标必须不能越界;

5.数组必须指定长度,  要么直接指定(第二个中括号直接写上长度), 要么间接指定(第二个中括号不写长度, 但必须赋值, 赋值的个数就自动决定了数组的长度);

6.数组是一个整体 , 不能直接参与运算, '=' 号除外;

foreach

专门遍历集合里的元素(只有只读性, 不能改写  只能使用它)

格式:

foreach( 类型 变量 in 集合名)

{

  代码;

}

猜你喜欢

转载自www.cnblogs.com/skylar-AKS/p/11945055.html