美文网首页
.Net基础05

.Net基础05

作者: Nicole__Zhang | 来源:发表于2017-05-12 16:58 被阅读25次

主要内容

主要内容.png

一个小练习

不断要求用户输入一个数字(假定用户输入的都是正整数),当用户输入end的时候显示刚才输入的数字中的最大值

static void Main(string[] args)
{
    //循环体:提示用户输入一个数字  接收  转换成int类型  不停的比较大小
    //循环条件:输入的不能是end
    string input = "";
    int max = 0;
    while (input != "end")
    {
        Console.WriteLine("请输入一个数字,输入end我们将显示你输入的最大值");
        input = Console.ReadLine();//数字 end  乱七八糟
        if (input != "end")
        {
            try
            {
                int number = Convert.ToInt32(input);
                //让用户输入的每个数字都跟我假定的最大值比较,只要比我假定的最大值要大,
                //就把当前输入的这个数字赋值给我的最大值
                if (number > max)
                {
                    max = number;
                }
            }
            catch
            {
                Console.WriteLine("输入的字符串不能够转换成数字,请重新输入");
            }
        }
        else//==end
        {
            Console.WriteLine("您刚才输的数字中的最大值是{0}",max);
        }
    }
    Console.ReadKey();
}

结果

程序调试

  • 为什么需要调试
    1)、写完一段程序后,想看一下这段程序的执行过程。
    2)、当你写完这段程序后,发现,程序并没有按照你想象的样子去执行。

  • 调试方法
    1)、F11逐语句调试(单步调试)
    2)、F10逐过程调试
    3)、断点调试

单步调试.png 监视变量.png

这里输入你要见识的变量名称


监视变量2.png

多次点击F11 后i 的值已经在代码执行过程中发生了变化


监视变量3.png

添加断点(点击行号左边的灰色区域添加断点 双击可取消断点)
添加完断点之后直接点击执行 程序会在执行到该行代码的时候停住
(关于行号的添加 参考 .Net基础01

断点调试.png

for循环

语法:

for(表达式1;表达式2;表达式3)
{
    循环体;
}

表达式1 一般为声明循环变量,记录循环的次数(int i=0;)
表达式2 一般为循环条件(i<10)
表达式3 一般为改变循环条件的代码,使循环条件终有一天不再成立(i++)。
执行过程:程序首先执行表达式1,声明了一个循环变量用来记录循环的次数,
然后执行表达式2,判断循环条件是否成立,如果表达式2返回的结果为true,
则执行循环体。当执行完循环体后,执行表达式3,然后执行表达式2继续判断循环条件是否成立,
如果成立则继续执行循环体,如果不成立,则跳出for循环。

static void Main(string[] args)
{
    for (int i = 0; i < 10; i++)
    {
        Console.WriteLine("我吃了{0}口饭", i);
    }
}
结果.png
  • 小练习1

找出100-999间的水仙花数?
水仙花数指的就是 这个百位数字的
百位的立方+十位的立方+个位的立方==当前这个百位数字

static void Main(string[] args)
{
    for (int i = 100; i <= 999; i++)
    {
        //153 
        //百位:153/100
        //十位:153%100/10
        //个位:153%10
        int bai = i / 100;
        int shi = i % 100 / 10;
        int ge = i % 10;
        if (bai * bai * bai + shi * shi * shi + ge * ge * ge == i)
        {
            Console.WriteLine("水仙花数有{0}", i);
        }
    }
    Console.ReadKey();
}
结果.png
  • 小练习2 (for循环嵌套)
static void Main(string[] args)
{
    //当遇到某个事情要做一遍,而另外一个事情要做N遍的时候
    //for循环的嵌套
    for (int i = 0; i < 10; i++)
    {
        for (int j = 0; j < 10; j++)
        {
            Console.WriteLine("Hello World i循环了{0}次,j循环了{1}次",i,j);
        }
    }
    Console.ReadKey();
}
结果.png

从输出结果可以看出for循环嵌套时在满足最外层循环条件后,将执行完内部for循环,之后再判断是否满足外层循环条件。

int.TryParse

类型转换
之前用的 Convert可以类型转换 Parse 也可以类型转换。
之前用的 Convert实际上也是调用了Parse,和Convert 一样Parse 也有int.Parse() double.Parse()等同样的转换类型。
两者在转换失败时都是会抛异常,Parse的效率比Convert要高一丢丢,不过基本可以忽略。

static void Main(string[] args)
{
    int number = 100;
    //参数 返回值
    bool b = int.TryParse("123abc", out number);
    Console.WriteLine(b);
    Console.WriteLine(number);
    //方法 或者 函数?
    Console.ReadKey();
}

当Parse 在类型转换失败时,并不会抛异常而是会返回一个 bool值,false 代表转换失败,true 代表转化成功。

continue

在循环中表示结束本次循环

static void Main(string[] args)
{
    while (true)
    {
        Console.WriteLine("Hello World");
        // break;
        continue;
        Console.WriteLine("Hello World");
        Console.WriteLine("Hello World");
    }
    Console.ReadKey();
}
结果.png

可以发现,程序一直在执行,并没有停止。

  • 小练习

用 while continue实现计算1到100(含)之间的除了能被7整除之外所有整数的和。

static void Main(string[] args)
{
    int sum = 0;
    int i = 1;
    while (i <= 100)
    {
        if (i % 7 == 0)
        {
            i++;
            continue;
        }
        sum += i;
        i++;
    }
    Console.WriteLine(sum);
    Console.ReadKey();
}

三元表达式

语法:
表达式1?表达式2:表达式3;

表达式1一般为一个关系表达式。
如果表达式1的值为true,那么表达式2的值就是整个三元表达式的值。
如果表达式1的值为false,那么表达式3的值就是整个三元表达式的值。
注意:表达式2的结果类型必须跟表达式3的结果类型一致,并且也要跟整个三元表达式的结果类型一致。

static void Main(string[] args)
{
    //计算两个数字的大小 求出最大的
    Console.WriteLine("请输入第一个数字");
    int n1 = Convert.ToInt32(Console.ReadLine());
    Console.WriteLine("请输入第二个数字");
    int n2 = Convert.ToInt32(Console.ReadLine());
    
    // 语法:
    //表达式1?表达式2 :表达式3
    int max = n1 > n2 ? n1 : n2;
    Console.WriteLine(max);

    Console.ReadKey();
}
结果.png

随机数

1、创建一个对象
2、用对象调用方法

static void Main(string[] args)
{
    //产生随机数
    //1、创建能够产生随机数的对象
    //Random r = new Random();
    //while (true)
    //{

    //    //2、让产生随机数的这个对象调用方法来产生随机数
    //    int rNumber = r.Next(1, 11);
    //    Console.WriteLine(rNumber);
    //    Console.ReadKey();
    //}

    //输入名字随机显示这个人上辈是什么样的人
    //思路:
    //1、创建能够产生随机数的对象
    //2、产生随机数 (1,7)

    Random r = new Random();
    while (true)
    {
        int rNumber = r.Next(1, 7);
        Console.WriteLine("请输入一个姓名");
        string name = Console.ReadLine();
        switch (rNumber)
        {
            case 1:
                Console.WriteLine("{0}上辈子是养猪的", name);
                break;
            case 2:
                Console.WriteLine("{0}上辈子是流氓的", name);
                break;
            case 3:
                Console.WriteLine("{0}上辈子就是小混混", name);
                break;
            case 4:
                Console.WriteLine("{0}上辈子是大汉奸", name);
                break;
            case 5:
                Console.WriteLine("{0}上辈子是拉皮条的", name);
                break;
            case 6:
                Console.WriteLine("{0}上辈子是救苦救难的活菩萨", name);
                break;
        }
        Console.ReadKey();
    }
结果.png

往期回顾

图文无关.png

相关文章

  • .Net基础05

    主要内容 一个小练习 不断要求用户输入一个数字(假定用户输入的都是正整数),当用户输入end的时候显示刚才输入的数...

  • 黑马训练营Asp.Net第2期完整版

    初级 .Net入门教程_.Net入门视频教程|黑马程序员 C#基础教程_C#基础视频教程_黑马程序员 .Net基础...

  • .Net基础06

    主要内容 常量 语法: 什么时候会用到常量?声明后不想被人改变的量 枚举 语法: public:访问修饰符。公开的...

  • .Net基础11

    File类 上一篇文章漏了几个方法,这里补上。 绝对路径和相对路径 绝对路径:通过给定的这个路径直接能在我的电脑中...

  • .Net基础 01

    .Net FrameWork框架是.Net平台中不可缺少的一部分,它提供了一个稳定的运行环境来保证我们基于.Net...

  • 17.03.10 .Net基础

    命名规范 Camel:多用于给变量或字段命名,第一个单词的首字母小写,其余每个单词的首字母大写.给字段命名,前面必...

  • .Net基础03

    主要内容 类型转换 1、类型如果相兼容的两个变量,可以使用自动类型转换或者强制类型转换,2、如果两个类型的变量不兼...

  • .Net基础02

    主要内容 注释 顾名思义:注释 解释不写注释是流氓,名字瞎起是扯淡 单行注释 // 多行注释 /**/ 文...

  • .Net基础04

    主要内容 异常捕获 语法上没有错误,在程序运行的过程当中,由于某些原因程序出现了错误,不能正常的运行。 我们需要用...

  • .Net基础07

    方法的调用 我们在Main()函数中,调用Test()函数,我们管Main()函数称之为调用者,管Test()函数...

网友评论

      本文标题:.Net基础05

      本文链接:https://www.haomeiwen.com/subject/jtiztxtx.html