第5天c#基础for循环和enum

循环语句

do...while

do-while第一次无条件进入循环体,先循环 再判断

string username;                                    //定义账号
string pwd;                                         //定义密码
do                                                  //先进入循环
{
    Console.WriteLine("请输入账号");
    username = Console.ReadLine();                  
    Console.WriteLine("请输入密码");
    pwd = Console.ReadLine();
} while (username != "admin" || pwd != "888888");   //判断条件,如果满足则退出,不满足则继续循环

for

练习:打印一个等腰三角形

            //     *
            //    ***
            //   *****
            //  *******
            // *********
            //***********
            //  .......
            //  第 10 行

            //先分析,行与列的关系  r表示行, c表示列
            //*                 r = 1  c = 1
            //***               r = 2  c = 3
            //*****             r = 3  c = 5
            //*******           r = 4  c = 7
            //*********
            //***********
            //  .......
            //  第 10 行
            // c =  2 * r - 1

            //先将第一行,多少星星打印出来,不考虑空格

            //再考虑每行前面的空格数   r表示行    s表示该行的空格数
            //
            //      ....
            //      ....
            //      ....
            //      ....
            //      ....
            //   *************          r = 7    s = 3
            //  ***************         r = 8    s = 2
            // *****************        r = 9    s = 1
            //*******************       r = 10   s = 0

            // s = 10 - r

            //最大的行数
            int maxRow = 15;
            //外侧循环控制行
            for (int r = 1; r <= maxRow; r++)
            {
                //内侧循环控制当前行的列

                //打印当前行星星之前,先将当前行前面的空格打印出来
                //先计算当前行的空格数
                int spaceCount = maxRow - r;
                for (int i = 1; i <= spaceCount; i++)
                {
                    Console.Write(" ");
                }

                //先计算当前行对应多少个星星
                int starCount = 2 * r - 1;
                for (int c = 1; c <= starCount; c++)
                {
                    Console.Write("*");
                }
                //当前行打印完毕,需要换行
                Console.WriteLine();
            }

结果:

练习2:九九乘法表

  /*
             1*1=1                          r = 1   c = 1
             1*2=2  2*2=4                   r = 2   c = 2
             1*3=3  2*3=6   3*3=9           r = 3   c = 3
             ............. 
             * */
            //分析行r 和列c 的关系
            //先分析 第几行有多少列   c = r
            //每一项的内容   c * r = 结果

            //控制行的循环
            for (int r = 1; r <= 9; r++)
            {
                //c <= r  当前是第n行,该行最多n列
                for (int c = 1; c <= r; c++)
                {
                    //通过每列以制表符分隔
                    // c * r = 结果
                    Console.Write("{0}*{1}={2}	", c, r, c * r);
                }

                Console.WriteLine();
            }

效果:

练习3:水仙花数

static void Main(string[] args)
        {
            //水仙花数:一个三位数的每位数字的立方和等于这个数本身
            for (int i = 100; i <= 999; i++)            //水仙花数是三位数,所以循环范围是100-999
            {
                int hundreds = i / 100;                 //除以100 得到百位的数字
                int tens = i / 10 % 10;                 //除以10 得到一个百位和十位组合的两位数,取余10,过滤掉百位的数字,最终得到的就是十位上的数字
                int units = i % 10;                     //取余10,得到个位数字
                if (i==(hundreds*hundreds*hundreds+tens*tens*tens+units*units*units))   //判断每位数字的立方和是不是等于数字本身
                {
                    Console.WriteLine(i);               //打印
                }
            }
        }

结果:

总结

1.while:先判断条件,再执行循环体;当满足条件时,继续执行循环体

2.do...while:先执行一次循环体,再判断条件;当满足条件时,继续执行循环体;当无需考虑条件先执行一次循环体时,考虑使用do...while语句

3.for:当明确执行次数时,考虑使用for循环比while循环更加简单

复杂数据类型

基本数据类型:数据结构中仅有一个成员

复杂数据类型:数据结构中可包含多个成员

enum枚举

声明枚举类型

定义枚举类型必须放在函数外,枚举名,枚举项(值)通常都使用帕斯卡命名法

使用枚举类型

使用枚举类型定义枚举变量

 myEnum my;

赋值

给枚举变量赋值

my = myEnum.A

注意

枚举类型和int和string的转换

枚举与int转换

使用强制转换符()转换

枚举与string转换

枚举转字符串

字符串转枚举

try-catch语句

保护代码,避免出现程序崩溃

原文地址:https://www.cnblogs.com/yifengs/p/14026088.html