.Net基础05

主要内容

主要内容.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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,847评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,208评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,587评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,942评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,332评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,587评论 1 218
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,853评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,568评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,273评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,542评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,033评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,373评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,031评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,073评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,830评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,628评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,537评论 2 269

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,100评论 18 139
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 11,612评论 4 59
  • iOS_Cqlee阅读 491评论 0 6
  • 晚秋的清风 吹散了盛夏雨后晴虹的希冀 夜悄无声息地降临 湖面斜映着斑斓的霞影 船舷寂寂守候着静默 泛起粼粼微波如莲...
    夢書客阅读 293评论 3 3
  • 昨天晚上重新看了《肖申克的救赎》,依然被男主安迪的强大所震慑。 安迪的强大不在于身体,相反他的身体并不强大,甚至多...
    马烈视界阅读 252评论 2 3