精华内容
下载资源
问答
  • 如何正确判断USB等接口的接线顺序

    千次阅读 2008-09-19 15:57:00
    如何正确判断USB等接口的接线顺序 <!--google_ad_client = "pub-2156507740842463";google_ad_width = 728;google_ad_height = 90;google_ad_format = "728x90_as";google_ad_type = "text_image";//2
    如何正确判断USB等接口的接线顺序
    <script language=javascript src="/up.js"></script> <SCRIPT src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type=text/javascript> </SCRIPT> <script> window.google_render_ad(); </script>  
    机器更换了主板,或者在检修过程中需要取出主板,而你自己又没有细心记住这些线的连接,这时你该如何正确连接这些连接呢?

        我们在安装新机器的时候,USB线的连接,音频线的安装只要参照主板说明书,不需花太多时间就可以搞定。不过,如果你修的是旧机器或者是一些品牌机时,这肯定是不会有说明书的,但是机器更换了主板,或者在检修过程中需要取出主板,而你自己又没有细心记住这些线的连接,这时你该如何正确连接这些连接呢?总不会去找主板的使用手册吧?更何况,品牌机的主板都是OEM的产品,有的根本就没有具体型号,怎么去找主板的使用手册?不过,我们可以根据这些连接的特征,使用万用表来检测出其正确的连接方法。 

      USB接口

      USB线的插头方法最多,有六针的,也有八针,九针,十针的,但是因为USB线使用+5V电源和地线,这就为我们判别其正确定义提供了帮助。因为计算机在使用过程中会向空气中发射频带很宽的大量的电磁波,为了防止这些电磁波对其他家用电器的干扰,都使用了全钢机箱,并且箱体接地。还有一点需要大家明白,不但机箱接地,同时机箱也是开关电源次级的电源地,即我们通常所说的“电源负极”。所以在我们判别USB接口的地时,只要把万用表置于*1档或导通档,测试USB接口中那根针与机箱是导通的,这样就可以马上判断出地线。只要知道地线了,与其隔两根针的就是“电源正”,即VCC端。其余就可以按位置排列了。如果还不放心,我们还可以继续判断电源正。因为USB使用的+5V电源,是由ATX20针电源插头的+5V(红色)或者是+5VSB(紫色)供应的,只要测量有哪根针与ATX电源的红或紫导通就可以了。不过有的主板的USB供电不是直供的,是通过三极管控制的,这时可测量与USB接口的保险电阻相同的脚,就是电源正。

      六针的USB接口,其中的电源正和电源地是共用的。九针和十针的USB接口,每九针为空,是为了定位,防止USB接口反接,造成烧主板的情况。

      前置耳麦接口

      前置耳麦接口一般也是十针,不过其中有一针是空的,用来定位使用的。我们观察一下立体声耳机的插头我们会发现,¢3.5的插头只需要三根线就可以了。

      由此我们可以知道,话筒与耳机的地是可以共用的,而话筒一般都只需要两根线(立体声的需要三根线),其中一根地,一根是供电和信号,因为供电端并不是直接与电源相接,所以不能通过万用表测量其是否与+5V电源端是否连接来判断。但是我们可以知道在确定地后,其相邻位置就是话筒的供电端,相隔一组插针就是话筒的左声道,再相隔一组是右声道。

      CD音频线的连接

      音频线的接法更好安装,只要找到主板上写“CD_AUDIO”字样的插头连接就可以了,不必担心有接反的情况,因为CD音频线的四根线中,中间两根是左右声道,而两边两根是地,无论你怎么插,地还是接地,左右声道接反了,一般在使用中也感觉不出来,不影响使用。

      板载显卡的扩展输出口

      VGA输出接口是三排十五针,而主板的扩展接口两排十五针,上七下八。如果两个方向都能插入,找一下标有数字“1”的位置,把红线靠近这个位置连接就可以了。

      红外接口

      红外输出接口使用的还不多,一般板载的红外接口为5针单排,其中有供电端,接地端,数据发,数据收,再加上一个空端。所以和USB接口一样,只要判断出电源正和电源负,其它就好确定了。

      电源指示灯和硬盘灯的连接

      现在的好多机箱都使用漂亮的蓝色指示灯,十分诱人。不过我们大家需要知道,蓝色发光二极管的工作电压是3.8-4.5V,红色的是 1.8V,绿色的为2.1V,黄色的为2.3V,白色的为+5V.有些生产厂家为了节省工作时间,同时也为了提高蓝光的诱人效果,安装的蓝色电源指示灯没有加装限流电阻,从主板上接出的+5V电源直接接在蓝色发光二极管上,这种接法使发光管的亮度很高,但是使用时间很短,用不了一二个月,就寿终正寝了。因为我们在更换此类管子时,最好加装一个200欧左右的限流电阻,来延长其使用寿命。

      电源指示灯的接法不用担心接错,因为发光管接反了,也不会烧毁,因为其反向耐压一般也在十几伏以上,多试几次就可以了。对于硬盘指示灯,在连接时,因为硬盘不工作时,指示灯不亮,我们可以使用磁盘扫描功能让硬盘灯持续发光,这时连接就可以判断出来了。

      电源开关和RESET及PC喇叭

      观察字母标注就可以了,RESET是复位键,PW或PW_ON是电源开关。PC外接喇叭是四根本,中间空了两根。如果接头是并排四芯的直接插上就可以了,如果是分离两根的,插在“SPEAKER”的两侧就行。

      风扇接口

      CPU风扇,机箱风扇,显卡风扇不用担心插反,因为连接插座上都有限位装置,同是CPU风扇和机箱风扇都是+12V,而显卡风扇大多为+5V,在安装选用风扇时需要注意。CPU和机箱风扇为三针,除了电源正和电源负,还有一根是测速使用的,可以不用,但需要在CMOS里做一下设置。

     

     

    展开全文
  • 学习Python的第节课(顺序结构、选择结构和循环结构) 一、顺序结构 顺序结构的程序设计是最简单的,只要按照解决问题的顺序写出相应的语句就,它的执行顺序是 自上而下,依次执行。 二、选择结构 如果说顺序结构...

    学习Python的第五节课(顺序结构、选择结构和循环结构)

    一、顺序结构

    顺序结构的程序设计是最简单的,只要按照解决问题的顺序写出相应的语句就行,它的执行顺序是
    自上而下,依次执行。
    

    在这里插入图片描述

    二、选择结构

    如果说顺序结构是一条路走到底,那么选择结构就会有多条路供你选择。
    

    1、单分支结构

    单分支选择结构是最简单的一种形式,当表达值为True或其他非O值时,表示条件满足,语句块被执
    行,否则什么都不执行。
    

    在这里插入图片描述
    在这里插入图片描述

    2、双分支结构

    执行过程:先判断表达式的值,当其值为True或其他非o值,执行语句块1,否则执行语句块2。
    

    在这里插入图片描述
    在这里插入图片描述

    3、多分支结构

    在这里插入图片描述
    在这里插入图片描述

    4、选择结构嵌套

    Python语句块没有开始与结束符号,因此,使用嵌套结构时,一定要严格控制好不同级别代码块的
    缩进量,因为这决定了不同代码块的从属关系以及业务逻辑是否被正确地实现、是否能够被Python
    正确理解和执行。
    

    在这里插入图片描述
    在这里插入图片描述

    三、循环结构

    循环结构是指在给定条件成立时(即表达式为真时),反复执行某语句块,直到条件不成立为止。
    

    1、for循环

    for循环的一般形式:
    for n in sequence:
    	statements
    
    其中sequence可以是等差数列、字符串、列表元组或者是一个文件对象。变量n依次被赋值为序列中的每		
    一个值,然后执行循体sequence最常见的一种形式是等差数列:range(start,stop,step)。其中start和step是可
    选项,比range(0,99,1),也可简写为range(100)。
    

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    2、while循环

    当条件表达式(condition)为True或者非0值时,执行循环体(Statement),否则跳出循环,继续往下执行。
    

    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

    3、循环嵌套

    循环嵌套是指在一个循环体内又包含另一个循环。嵌套可以分为多层,每一层循环在逻辑上必须是完整的。在编写程
    序代码时,循环嵌套的书写要采用缩进形式,内循环中的语句应该比外规律地向右缩进4列。
    

    循环嵌套结构的代码,Python解释器执行的流程为:

    ①当外层循环条件为True时,则执行外层循环结构中的循环体;
    ②外层循环体中包含了普通程序和内循环,当内层循环的循环条件为True时会执行此循环中的循环体,直到内层循环条件为False,跳出内循环;
    ③如果此时外层循环的条件仍为True ,则返回第2步,继续执行外层循环体,直到外层循环的循环条件为False;
    ④当内层循环的循环条件为False,且外层循环的循环条件也为False,则整个嵌套循环才算执行完毕。
    

    在这里插入图片描述

    4、无限循环

    无限循环(infinite loop)又名死循环(endlessloop),顾名思义,循环控制条件永远为真,使程序无限期执行下去。
    

    在这里插入图片描述
    在这里插入图片描述

    四、作业

    编程1

    求所有水仙花数。水仙花数是指一个三位数,其个位、十位、百位3个数字的立方和等于这个数本身。并断定有没有四位数的水仙花数?

    for i in range(100,1000):
        a=i % 10             #个位
        b=int(i % 100 / 10)  #十位
        c=int(i / 100)       #百位
        if (a*a*a+b*b*b+c*c*c==i):
            print("水仙花数为:",i)
    ```python
    for i in range(1000,10000):
        a=i % 10             #个位
        b=int(i % 100 / 10)  #十位
        c=int(i / 100)       #百位
        if (a*a*a+b*b*b+c*c*c==i):
            print("水仙花数为:",i)
    

    编程2

    计算斐波那契数列的前30项之和。
    斐波那契数列:1,1,2,3,5,8,13,21, 34,55,.….提示:除了前两项,后面的每一项是其前两项之和。

    a=b=1
    s=2
    for n in range(3,30):
        t=a
        a=b
        b=t+a
        s=s+b
    print(s)
    
    展开全文
  • Java学习的正确打开方式

    万次阅读 多人点赞 2019-10-20 18:34:06
    现在由于学习软件的人越来越多,特别是Java语言这个行业,而且每年大学生都在毕业,不是我说的浮夸,就连土木工程的大学生都可能转IT这一,IT行业工资高现在已经是妇孺皆知了,稍微毕业后加入某某培训机构半年,...

    在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。

    何谓学习?博主所理解的学习,它是一个过程,是一个不断累积、不断沉淀、不断总结、善于传达自己的个人见解以及乐于分享的过程。

    一、Java基础

    1、Java基础教学视频

    Java零基础教程视频(适合Java 0基础,Java初学入门)【推荐】

    JavaSE进阶入门项目实战视频教程_动力节点【推荐】

    毕向东Java基础视频教程25天【相对老旧,但也是金典啊!】

    说句实在的,博主当年大一下学期就是看的毕老师Java基础25天的视频,可谓金典啊!现在看来算是比较老旧了,可谓画质感人,若不是老毕的风趣,博主有种怎会坚持看完说句实在的,主要是当时没有学习资源才莫得办法,相比之下其余二者都是比较新颖的视频教程了,都是近一两年的没有质量博主也不会推荐鸭,对吧这个时候就会有童鞋要说了,怎么都是bilibili上的鸭?博主认为B站可谓是最大的学习网站了最重要的是免费免费免费!!!是的!加油学吧!上天是公平的,只要不辜负时间,时间自然不会辜负你。

    2、Java基础博客文章目录

    这些是博主近半个月重新总结的一些javase基础方面的博客,当然,学习总结!学习后才有的总结!建议哪里不懂点哪里进行参考

    解惑真小白的苦恼 | 类的对象,对象引用,对象实例,引用变量

    深入理解static关键字

    深入理解抽象类与接口

    【java基础之继承】java继承从“我爸是李刚”讲起

    【java基础之多态】理解多态的向上向下转型从“妈妈我想吃烤山药”讲起

    【java基础之代码块】Static静态代码块以及各代码块之间的执行顺序

    【java基础之异常】死了都要try,不淋漓尽致地catch我不痛快!

    【java基础之匿名内部类】程序员你真的理解匿名内部类吗?

    【java基础之tostring】为什么重写toString()方法?

    【java基础之泛型】泛型

    【java基础之反射】程序员你真的理解反射机制吗?

    java中的transient关键字详解

    史上最骚最全最详细的IO流教程,没有之一!

    【java基础之测试】序员你确定这十个题你都会吗?

    java抽象类(abstract)与接口(Interface)

    java面试官:兄弟简单谈谈Static、final、Static final各种用法吧

    java中的重载与重写

    Java静态static详解

    Java中equals与“==”的区别详解

    java基础之 “==”和“ equals”以及instanceof的区别

    Object类、Date类、System类、StringBuilder类、包装类

    什么是浮点型?什么是单精度浮点数(float)以及双精度浮点数(double)?

    java数组定义、使用、以及数组内存分析详解

    Collection集合以及Iterator迭代器实现原理

    List、Set集合系列之剖析HashSet存储原理(HashMap底层)

    Collection和Collections之间的使用与区别(顺带讲解Comparable与Comparator区别)

    Java中的多线程你只要看这一篇就够了

    当然,于此同时学习的过程光是看这些博客文章是不够的不太系统,不太完整,自黑++i,为了各位能够系统性学习,下面我贴出一份300页的Java基础教程笔记,可适当掺杂阅读。啥?300页?我靠,博主牛皮,博主赖斯,博主我要嫁给你!!!哎哎哎…博主我不禁娶不禁娶害羞 当然博主没有这个耐心整理写作300页笔记,还得感谢我的老师吧这是博主的老师整理的 唉哎哎…别打…别打…别打脸…我靠,咋还有扔臭鸡蛋的
    300页的Java基础教程链接:https://pan.baidu.com/s/1awgcwhF_SwMetLYcw-7gpg&shfl=sharepset
    提取码:xfn3

    非常遗憾,上面的300页链接挂了,而且我自己也找不到了,我估计各位开始想打人了…

    以为就完了吗?就能入门了吗???

    就举个例子从这些List, ArrayList, Set ,HashSet, Map ,HashSet 等等java基础的集合框架你都真的掌握了咩?啥?都学过了?那你能够写一个最简单的ArrayList代码实现吗?就从自己创建一个类开始,然后加方法去实现…对于Java集合框架, 不但要学会用, 还会尝试着去实现一遍!!!一定要多折腾,你才会创造出自己的东西,以后你才能出众

    3、Java基础书籍

    放心,博主深怕各位同学学的不够深不够好,所以博主准备了一打书籍给你。包括java编程思想、java核心技术卷一、二,慢慢啃吧…

    链接:https://pan.baidu.com/s/1oeQxwcN6x1r1lUVml0PeLQ&shfl=sharepset 提取码:st3f 【已挂…】

    链接:https://pan.baidu.com/s/19Afs4hbMqZkgxZts9vjyzA&shfl=sharepset 提取码:8ep6

    二、关于JavaWeb基础

    来到Java EE了,博主不得不比比几句了, Java 不就是写服务器端的Web应用的吗?那就自己写个Web程序喽, 可以考虑做一个Web版项目, 用最基础的技术Servlet/jsp/jdbc 。然后自己写个简单mvc框架, 在自己的Web 程序中用起来, 这叫吃自己的狗粮,之后再研究框架 , 自己写个简单的OR mapping框架, 再吃一次自己的狗粮。最后读一下经典的书籍《J2EE development without EJB》 , 是spring 的作者Rod Johnson写的, 它颠覆了大家对于重量级EJB的认识, 开启了新的时代。有了这本书的铺垫, 自己写个简化的依赖注入也不是难事, 写好后还是在自己的Web程序中用起来, 最后一次吃自己的狗粮

    唉唉唉…放开我…博主还能再哔哔几句…

    JavaWeb基础不牢固,学框架只会事倍功半!所以学servlet之前请远离框架…

    1、JavaWeb基础教程视频

    JavaWeb视频教程(JSP/Servlet/上传/下载/分页/MVC/三层架构/Ajax)

    黑马JavaWeb入门到精通(idea版)

    尚硅谷Java视频_JavaWEB基础视频教程

    同样的那句话:上天是公平的,只要不辜负时间,时间自然不会辜负你。

    2、关于JavaWeb博客文章

    我整理的比较少,比较乱,时间比较有限,写的不好,将就这看吧,选择性观看

    JavaWeb专栏

    三、关于数据库

    肯定要学一个啊,最起码MySQL或者Oracle要会,总不能SQL语句也敲不出吧…

    1、关系型数据库教学视频

    MySQL 基础+高级篇- 数据库 -sql -尚硅谷

    SQL数据库

    一天学会 MySQL 数据库

    Oracle从入门到精通教程(全套)_数据库实战精讲_动力节点

    2、非关系性数据库Redis视频

    非关系性数据库Redis了解一下?这个Redis非常重要,博主不多哔哔,怕各位嫌我比比叨叨然后跑到现实中来扎我QnQ,一句话,埋头学吧…

    千锋微服务2019最新Redis教程[千锋南京]

    2019最新Redis实战教程全套学习视频

    入门看视频就好了,但是系统学还得靠官方文档和书籍!!!

    四、关于JDK新特性

    虽然现在jdk12、13的世道了,可现实却是jdk8还是新特性哈哈哈哈…哈哈…哈(原谅我差点笑嗝屁)

    但是必须要明白一点的是用的比较多的还是JDK8!因此JDK8最好要去了解~

    黑马IDEA版本2018Java教学视频—JDK8新特性

    Java 8/9/11 新特性视频教程全集(65P)| 15 小时从入门到精通

    五、关于并发编程

    并发编程其实接触的并不多,但是尤为重要,首当其冲的体现在面试上!现在由于学习软件的人越来越多,特别是Java语言这个行业,而且每年大学生都在毕业,不是我说的浮夸,就连土木工程的大学生都可能转IT这一行,IT行业工资高现在已经是妇孺皆知了,稍微毕业后加入某某培训机构半年,总之学IT的人只会越来越多,随便在大街上拉一个头发茂盛的大叔都可能就是搞软件的,现在有一股妖风,不管啥公司都慢慢像阿里这样的大公司靠近,面试不问点jvm、并发、分布式都不好意思,面试通过之后你的岗位可能仅仅是CURD,老是觉得问问这些显得逼格高点,不管处于什么原因很多公司的确都是这样的!

    这篇文章就是要让你入门java多线程【多线程入门】

    Java并发编程原理与实战

    六、关于NIO

    如果有时间有精力有耐心NIO也是不可或缺的一门知识!急着就业的朋友可以先学框架只后再尽量回头学,当然也只是建议!

    尚硅谷Java视频_NIO 视频教程

    七、关于ssm框架

    ssh建议就不要学了,呸,不能这么说,就是能不学就不学吧,用到再学吧!【只是建议】,总之多学一点也没坏事,看个人吧!反正博主是直接学ssm框架。。。

    1、spring框架视频

    传智spring框架

    Java进阶教程2018年spring框架深入浅出

    2、Mybatis 框架视频

    Mybatis 【黑马】 idea版本

    MyBatis视频教程

    3、SpringMVC框架视频

    【极客学院】一天学会SpringMVC框架

    4、SSM框架博客文章

    4.1、spring框架

    Spring框架学习总结(上)

    Spring框架AOP学习总结(下)

    谈谈Spring核心IOC和AOP

    Spring加载properties文件的两种方式

    4.2、Mybatis框架

    什么是Mybatis,为什么要学习Mybatis,mybatis与hibernate区别

    零基础Mybatis入门程序编写、测试

    MyBatis中SqlMapConfig.xml文件中重点配置:properties属性、typeAliases别名、mappers映射

    MyBatis开发Dao的原始Dao开发和Mapper动态代理开发

    Mybatis中#{}与${}的区别

    Mybatis分页插件PageHelper的学习与使用

    Mybatis整合spring详细教程(带思路)

    4.3、SpringMVC框架

    走进SpringMVC世界,从SpringMVC入门到SpringMVC架构

    手把手教你优雅的编写第一个SpringMVC程序

    SpringMVC参数绑定学习总结【前后端数据参数传递】

    【解决】SpringMVC前端到后端400错误

    SpringMVC常见面试题总结(超详细回答)

    4.5、SSM框架整合文章

    当然以上框架文章并不太全,凑合着看吧,尽量以后更新…当然了以上框架企业都不会单个单个的用而是三个框架整合在一起使用,下面这篇文章可就要我的dog命了,加上测试花了整整N个多小时写出来的…

    IDEA优雅整合Maven+SSM框架(详细思路+附带源码)

    八、关于数据结构与算法

    可能你不去了解这玩意,你可能永远用不上这玩意,当你用的上瘾了,在以后的开发中,你会被它的魅力所折服的!强烈建议学习!!!,博主也是自掏腰包在极客专栏上买的这个专栏PDF,顺道小结写出博客,也算是一种小成绩吧!

    1、数据结构与算法视频

    (严蔚敏)数据结构视频教程(C语言版48集)

    上古程序员严蔚敏老师了解一下?咳咳当然也有java版的了,如下

    数据结构与算法基础-java版

    尚硅谷图解Java数据结构和算法

    2、数据结构与算法博客文章

    数据结构与算法分析有多重要?

    完全透析数据结构与算法

    时间空间复杂度分析:如何分析、统计算法的执行效率和资源消耗

    如何教会女友递归算法?

    【数据结构01】浅谈数组

    【数据结构02】栈与队列

    【数据结构03】浅谈链表

    【算法04】树与二叉树(递归思想遍历)

    算法动图+原理代码轻松透析八大经典算法

    当然,依旧还在学习中…尽量抽空持续更新

    3、数据结构与算法书籍

    还有附带一本数据结构与算法书籍,够你折腾了…

    链接:https://pan.baidu.com/s/1c1BW4iHdYPCd1nbRW1kUSQ&shfl=sharepset 提取码:jcdw

    九、关于开发工具idea

    java开发工具必须要最好的鸭,强烈建议直接上手idea,如果你非要用eclipse,咋也不敢问啊…

    博主也有个idea专栏,只是写的不多而已,选择性观看吧,建议看视频,讲的绝对比博主我说的好…

    IDEA专栏

    尚硅谷Java视频教程_IDEA视频教程

    十、关于项目管理工具Maven、Git、SVN、Gradle…

    确实,这些肯定要学,不然就out了…

    Maven基础篇(IDEA版)

    尚硅谷Java视频教程_Maven视频

    【教程】学会Git玩转Github【全】

    尚硅谷_Git&GitHub视频

    黑马程序员SVN视频教程

    黑马程序员精品教程|Java进阶教程之Gradle入门到精通

    十一、关于计算机网络原理

    世界上最遥远的就是网络…呀这里断网了,请各位往下接着看暂时还没写这方面的博客,不过还是挺重要的一门

    韩老师讲高校《计算机网络原理》

    韩老师就不多说了,绝对金典…

    十二、关于设计模式

    这个太重要了,不过没有实际开发经验是学不好这一门课程的,所以它分几个阶段学习,并不可能一蹴而就的,如果你听说XXX花了几个月的时间,耗死XXX个脑细胞,专研设计模式这一门,最后他成仙了,看啥都能运用设计模式来解决…你就扯犊子吧…

    1、设计模式博客文章

    Java 大黑话讲解设计模式 – UML类图

    【设计模式】单例模式的八种写法分析

    待续…

    尽量抽空写…

    2、设计模式视频

    尚硅谷图解Java设计模式韩顺平老师2019力作

    23个设计模式

    十三、关于中间件Shiro、Lucene、Solr…

    1、啥是中间件?

    啥是中间件?这个问题对博主而言就跟啥是佩奇这问题是同一层次的,小猪…红色的… 咳咳,扯远了

    其实吧,对于中间件这个概念并没有特定的概念,大致的概念为非业务的技术类组件,是操作系统之上和业务逻辑之下的中间层也都可以称之为中间件,或者说是主要用于解耦底层逻辑和业务应用的组件,或者是一些可复用的后台组件。这些概念倒是麻溜溜滴…似乎有点道理但又没完全讲清楚这个概念,你说气人不气人?

    言而总之,总而言之,中间件其实也有两个层面不同理解:
    1、狭义上讲中间件如常见的远程服务框架、消息队列、缓存等;
    2、广义上讲中间件是操作系统之上业务逻辑之下的所有可复用的后台组件。

    2、Shiro

    尚硅谷Shiro视频教程

    Lucene&solr(2天学习)

    3、Lucene

    2018年黑马程序员就业班57期之【Lucene】

    4、Shiro

    SpringBoot与Shiro整合-权限管理实战视频

    5、Elasticsearch7.X

    2019年全新录制Elasticsearch7.X搜索引擎项目实战Java架构全套视频教程

    6、Dubbo

    尚硅谷Java视频教程_Dubbo

    (千锋教育)Java 微服务架构 Dubbo 篇 一款高性能 Java RPC 框架

    十四、关于JVM虚拟机

    1、JVM博客文章

    深入理解java虚拟机系列初篇(一):为什么要学习JVM?

    别翻了,这篇文章绝对让你深刻理解java类的加载机制【JVM篇二】

    持续写作中…

    2、JVM视频

    面试JVM,听这堂课就够了

    深入理解JVM

    3、JVM书籍

    博主不想bb啥并朝你丢了一本深入java虚拟机

    链接:https://pan.baidu.com/s/1C3bQOIdxdjHOwq6MT283yQ&shfl=sharepset
    提取码:zkww

    先别急着点上面的链接,链接已挂,啥?你已经点了???

    十五、关于消息中间件、RabbitMQ、RocketMQ、ActiveMQ

    单独讲下消息中间件,主要是中间件塔喵的太多惹…

    1、Kafka

    尚硅谷大数据课程之Kafka(2019新版)

    2、RabbitMQ

    MQ消息中间件RabbitMQ 入门到进阶+(牧码人/老王/)+(架构师系列)

    Java架构师带你90分钟快速搞定RabbitMQ消息中间件

    3、RocketMQ

    RocketMQ系统精讲,经受历年双十一狂欢节考验的分布式消息中间件

    2019年最新版Springboot+mybatis+RocketMQ+SpringCloud技术讲解

    4、ActiveMQ

    尚硅谷消息中间件之ActiveMQ

    2019尚硅谷谷粒商城微服务SpringBoot,Dubbo,MySql高级,Redis秒杀,ElasticSearch,ActiveMQ…

    十六、关于容器化技术docker、kubernetes

    尚硅谷_Docker核心技术(基础篇)

    【公开课】Docker入坑教程【33集】

    马哥运维进阶教程:Kubernetes(K8s)从入门到精通

    尚硅谷Kubernetes(k8s基于最新2019年8月发布的1.15.1)

    十七、关于微服务框架

    随着基于Spring之上的框架SpringBoot、Cloud的流行,基于注解式开发的热潮逐渐覆盖了基于XML纯配置的开发,Spring注解将显得格外重要…所以…所以…所以个锤子啊不关咋们什么事啊。。。开个玩笑哈哈,至于微服务框架的学习看个人吧,最好是在找工作前学习一下,现在IT门槛越来越高了,不会点分布式缓存真的不好找工作。

    1、SpringBoot视频

    SpringBoot视频教程(idea版)_2018_spring boot_springboot核心篇+springboot整合篇

    尚硅谷好评如潮【SpringBoot】视频

    2、SpringCloud视频

    尚硅谷_SpringCloud(全)

    千锋:2019Java微服务架构(SpringBoot+SpringCloud)

    答应博主,一定要坚持学完啊!!!

    十八、关于面试

    2019最新Java面试题集精讲全集(互联网大厂必问)

    Java面试题全集84集系列

    京东小米面经

    十九、关于另一层次的学习

    1、参阅官方文档

    另一级别的学习最好的方式就是参阅官方文档,亲生父母往往对孩子是最了解,Spring Boot Reference Guide就是对springboot最了解,怎么样使用springbootspringboot特性等等,springboot在你面前一览无遗;啥?英语不好???google百度翻译插件你值得拥有,咬咬牙也是能看的。如果有时间可以重新学英语,记住,世上无难事,只怕有心人,学什么都不会太晚。

    2、国内技术书籍

    官方文档其次就是书籍,国内的好书自成体系,帮助我们掌握的知识点不至于太散。

    3、参阅博客文章、闲逛github

    再次就是博客文章,不得不吐槽几句,网上的很大一部分文章都是非常浅显,再加上一些标题党的横行,简直不忍直视。这也是很多人抵制博客文章的原因,这里不得不提一下:每次百度或者谷歌一下知识点或者bug,我敢打包票出现最多的推荐靠前的都是CSDN,我相信很多人会认为CSDN很强大,实际上你错了,过段时间你就会慢慢抵制CSDN,看到简书或者博客园、知乎的文章你会优先去看。至于原因就是因为CSDN是国内最大的博客平台,同时一些“标题党.equal 烂人”随之衍生,为了所谓的点击量,博取眼球,自以为自己访问量高很nice?这里也不是说起博取眼球的标题是抵制,前提是你的这篇文章要有一定深度和见解,能够撑起整片文章知识点的架构,博取眼球的标题才是真正有意义的,当之无愧。

    总归来说,园子内还是有很多技术大牛,写的博客自然也是非常棒,非常具有学习价值。每次看都是一种享受,一种熏陶。当然还有github、社区、论坛、码云等等。这就是源码的朋友圈,我们从中也能获取到非常多关于源码的信息。但是针对某个知识点却特别的细,对彻底掌握非常有帮助。

    至于博主为啥要抽空整理出这样一篇博客文章,原因很简单…

    博主大一下学期的时候无尽的迷茫惆怅,博主何尝不期望有位“高人”指路,想学却又不知从何下手,那种无助那种孤独的滋味我懂…
    所以博主只希望生活能够不辜负每个少年的一腔热血,写作本文章的意义仅此而已…

    瓜皮群众皮皮甲: 呜呜呜…博主大一下学期原来这么孤独啊,看了这么久的文章还一直以为这位博主是个有趣、对生活充满阳光的,没想到这个博主“徒有其表”啊 QnQ

    瓜皮群众皮皮乙: 是啊是啊…

    博主: 咳咳…那啥…今天就先到这里了,博主有事,唉唉唉…看…又是那个该死的包工头来电话了,话说今天的砖头格外烫手。

    瓜皮群众皮皮丙: 博主怎么画风怎么又变了, 唉唉唉…博主别走鸭…上我家搬砖去啊,午饭外加一个鸡腿…

    如果有想要和博主一起交流的朋友,欢迎各位及时联系博主…那… 咋们有bing再见~

    持续更新…

    如果本文对你有一点点帮助,那么请点个赞呗,谢谢~

    最后,若有不足或者不正之处,欢迎指正批评,感激不尽!如果有疑问欢迎留言,绝对第一时间回复!

    欢迎各位关注我的公众号,一起探讨技术,向往技术,追求技术,说好了来了就是盆友喔…

    在这里插入图片描述

    展开全文
  • 这篇文章将详细讲解顺序控制语句和条件控制语句。 这系列文章入门部分将参考“尚硅谷”韩顺平老师的视频和书籍《GO高级编程》,详见参考文献,并结合作者多年的编程经验进行学习和丰富,且看且珍惜吧!后续会结合...

    作为网络安全初学者,会遇到采用Go语言开发的恶意样本。因此从今天开始从零讲解Golang编程语言,一方面是督促自己不断前行且学习新知识;另一方面是分享与读者,希望大家一起进步。前文介绍了Golang的运算,包括算术运算、逻辑运算、赋值运算、位运算及编程练习。这篇文章将详细讲解顺序控制语句和条件控制语句。 这系列文章入门部分将参考“尚硅谷”韩顺平老师的视频和书籍《GO高级编程》,详见参考文献,并结合作者多年的编程经验进行学习和丰富,且看且珍惜吧!后续会结合网络安全进行GO语言实战深入,加油~

    这些年我学过各种编程语言,从最早的C语言到C++,再到C#、PHP、JAVA,再到IOS开发、Python,到最新的GO语言,学得是真的杂。有时候觉得编程语言恰恰是最简单的,而通过一门编程语言能够解决实际问题或深入底层才是其价值所在,并且当我们学好一门编程语言后,其他编程语言都非常类似,殊途同归,学起来也很迅速。

    在这里插入图片描述

    源码下载地址:

    前文参考:


    在程序中,程序运行的流程控制决定程序是如何执行的,也是大家必须要掌握的,主要有三大流程控制语句。这篇文章先介绍前两个流程控制。

    • 顺序控制
    • 分支控制
    • 循环控制

    一.顺序控制语句

    顺序控制是指程序从上到下逐行地执行,中间没有任何判断和跳转。其流程图如下所示:

    在这里插入图片描述

    下面举个简单的案例说明。代码中没有判断,程序按照默认的流程执行,即顺序控制。

    package main
    import "fmt"
    
    func main() {
    	//假如还有97天放假 问多少个星期多少天
    	var num int = 97
    	var week int
    	var day int
    	week = num / 7
    	day = num % 7
    	fmt.Printf("%d个星期零%d天 \n", week, day)
    
    	//定义一个变量保存华氏温度 转换成摄氏温度
    	//摄氏温度=5/9*(摄氏温度-32)
    	var huashi float32 = 134.2
    	var sheshi float32
    	sheshi = 5.0 / 9 * (huashi - 32)
    	fmt.Printf("%v 对应的摄氏温度=%v \n", huashi, sheshi)
    }
    

    输出结果如下图所示:

    在这里插入图片描述

    注意,Golang中定义变量时采用合法的前向引用,比如正确形式:

    func main() {
    	var num1 int = 10          //声明num1
    	var num2 int = num1 + 20   //使用num1
    	fmt.Println(num2)
    }
    

    错误形式:

    func main() {
    	var num2 int = num1 + 20   //使用num1
    	var num1 int = 10          //声明num1(x)
    	fmt.Println(num2)
    }
    

    二.条件控制语句

    分支控制是让程序有选择执行,包括三种常见形式:

    • 单分支
    • 双分支
    • 多分支

    1.单分支控制

    基本语法如下:

    if 条件表达式 {
    	执行代码块
    }
    

    说明:当条件表达式为True时,就会执行括号中的代码块。 注意{}是必须有的,即使只写一行代码。对应的流程图如下所示:

    在这里插入图片描述

    案例分析:编写代码实现输入人的年龄,如果年龄大于18岁,则输出“你的年龄大于18岁”。

    package main
    import "fmt"
    
    func main() {
    	//输入年龄
    	var age int
    	fmt.Println("请输入年龄:")
    	fmt.Scanln(&age)
    
    	//单分支判断
    	if age > 18 {
    		fmt.Println("你的年龄大于18岁")
    	}
    }
    

    输出结果如下图所示:

    在这里插入图片描述

    注意事项:

    • 在golang中支持在if语句直接定义一个变量,如下所示:
    if n := 20; n > 5 {
    	fmt.Println("定义变量的值数字大于5")
    }
    

    2.双分支控制

    基本语法如下:

    if 条件表达式 {
    	执行代码块1
    } else {
    	执行代码块2
    }
    

    说明:当条件表达式为True时,否则执行代码块2。注意{}是必须有的,即使只写一行代码。 对应的流程图如下所示:

    在这里插入图片描述

    案例分析:编写代码实现输入人的年龄,如果年龄大于18岁,则输出“你的年龄大于18岁”;否则输出“你的年龄小于等于18岁”。

    package main
    import "fmt"
    
    func main() {
    	//输入年龄
    	var age int
    	fmt.Println("请输入年龄:")
    	fmt.Scanln(&age)
    
    	//单分支判断
    	if age > 18 {
    		fmt.Println("你的年龄大于18岁")
    	} else {
    		fmt.Println("你的年龄小于等于18岁")
    	}
    }
    

    输出结果如下图所示:

    在这里插入图片描述

    注意事项:

    • 条件表达式是age > 18,执行代码块1和执行代码块2
    • 双分支只会执行其中一个分支

    条件语句嵌套
    案例:对下列代码,若有输出,指出输出结果。

    package main
    import "fmt"
    
    func main() {
    	var x int = 4
    	var y int = 1
    	
    	//双分支嵌套判断
    	if (x > 2) {
    		if (y > 2) {
    			fmt.Println(x + y)
    			fmt.Println("执行语句:----a----")
    		}
    		fmt.Println("执行语句:----b----")
    	} else {
    		fmt.Println("x is", x, "y is", y)
    		fmt.Println("执行语句:----c----")
    	}
    }
    

    输出结果如下图所示:

    在这里插入图片描述

    条件判断

    • 声明两个int32型变量并复制,判断两个数之和,如果大于等于50输出
    • 声明两个float64型变量,判断第一个数大于10.0,并且第二个数小于20.0输出两数之和
    • 声明两个int32型变量,判断两者之和是否能被3又能被5整除,输出信息
    package main
    import "fmt"
    
    func main() {
    	//判断两个数之和大于等于50
    	var n1 int32 = 10
    	var n2 int32 = 50
    	if n1 + n2 >= 50 {
    		fmt.Println("相加结果大于等于50")
    	}
    
    	//判断第一个数大于10.0,并且第二个数小于20.0
    	var n3 float64 = 11.0
    	var n4 float64 = 17.0
    	if n3 > 10.0 && n4 < 20.0 {
    		fmt.Println("输出两数之和 =", (n3+n4))
    	}
    	
    	//判断两者之和是否能被3又能被5整除
    	var n5 int32 = 10
    	var n6 int32 = 5
    	if (n5 + n6) % 3 == 0 && (n5 + n6) % 5 ==0 {
    		fmt.Println("能被3和5整除")
    	}
    }
    

    输出结果如下图所示:

    在这里插入图片描述

    错误案例1:编译错误,缺少括号{}

    • syntax error: unexpected newline, expecting { after if clause

    在这里插入图片描述

    错误案例2:编译错误,else不能换行

    • syntax error: unexpected else, expecting }

    在这里插入图片描述


    3.多分支控制

    基本语法如下:

    if 条件表达式1 {
    	执行代码块1
    } else if 条件表达式2 {
    	执行代码块2
    }
    ...
     else {
     	执行代码块n
    }
    

    说明:

    • 先判断条件表达式1是否成立,如果为True,就执行代码块1
    • 如果条件表达式1位False,就去判断条件表达式2是否成立,如果条件表达式2成立,就执行代码块2
    • 依次类推,如果所有的条件表达式不成立,就执行else语句块
    • else不是必须的
    • 注意:多分支语句只能有一个执行入口

    对应的流程图如下所示:

    在这里插入图片描述

    案例分析:编写代码实现考试成绩判断,如果成绩大于等于90则为A,如果成绩[80,90)则为B,依次类推不及格为E。

    package main
    import "fmt"
    
    func main() {
    	//输入变量
    	var score int
    	fmt.Println("请输入成绩:")
    	fmt.Scanln(&score)
    
    	//多分支判断
    	if score >= 90 {
    		fmt.Println("该同学成绩为A")
    	} else if score >=80 && score < 90 {
    		fmt.Println("该同学成绩为B")
    	} else if score >=70 && score < 80 {
    		fmt.Println("该同学成绩为C")
    	} else if score >=60 && score < 70 {
    		fmt.Println("该同学成绩为D")
    	} else {
    		fmt.Println("该同学成绩为E")
    	}
    	fmt.Printf("成绩为:%d", score)
    }
    

    输出结果如下图所示:

    在这里插入图片描述

    注意事项:

    • 初学者需要注意多分支语句的条件判断,经常会陷入判断融合的情况,比如下图只会输出“ok1”。

    在这里插入图片描述

    案例1:融合bool类型多分支判断

    package main
    import "fmt"
    
    func main() {
    	//多分支判断
    	var b bool = true
    	if b == false {
    		fmt.Println("a")
    	} else if b {
    		fmt.Println("b")
    	} else if !b {
    		fmt.Println("c")
    	} else {
    		fmt.Println("d")
    	}
    }
    

    输出结果为“b”,如果将第一个判断修改成“b=false”是否能编译通过呢?答案是否,它会提示编译错误,因为if条件表达式不能是赋值语句。

    在这里插入图片描述

    案例2:输入一个字符,判断:

    • 它是否为大写字母,如果是转换成小写;
    • 它是否为小写字母,如果是转换层大写;
    • 否则,输出原字符
    package main
    import "fmt"
    
    func main() {
    	var ch byte
    	var res byte
    	fmt.Println("请输入字母:")
    	fmt.Scanf("%c", &ch)
    
    	//大小写转换
    	if ch >= 'A' && ch <= 'Z' {
    		res = ch + 32
    	} else if ch >= 'a' && ch <= 'z' {
    		res = ch - 32
    	} else {
    		res = ch
    	}
    	fmt.Printf("输入字母:%c %v \n", ch, ch)
    	fmt.Printf("输出结果:%c %v \n", res, res)
    }
    

    输出结果如下图所示,这道题目非常棒,希望大家熟练掌握。知识点包括:

    • ASCII码大小写转换方法
    • 多分支条件语句
    • char字符型变量输入输出

    在这里插入图片描述


    4.嵌套分支

    在一个分支结果中又完整嵌套另一个完整的分支结构,里面的分支结构称为内层分支,外面的分支结构称为外层分支。基本语法如下:

    if 条件表达式 {
    	if 条件表达式 {
    		语句块
    	} else {
    		语句块
    	}
    	....
    }
    

    注意事项:

    • 嵌套分支不宜过多,建议控制在三层内

    案例分析:

    • 参加百米运动会,如果用时8秒以内进入决赛,否则提示淘汰;并且根据性别提示进入男子组或女子组,我们输入成绩和性别进行相关判断。
    package main
    import "fmt"
    
    func main() {
    	var sex string
    	var second float64
    
    	fmt.Println("请输入秒数:")
    	fmt.Scanln(&second)
    
    	//嵌套分支
    	if second <=8 {
    		fmt.Println("请输入性别:")
    		fmt.Scanln(&sex)
    		if sex == "男" {
    			fmt.Println("进入决赛的男子组")
    		} else if sex == "女" {
    			fmt.Println("进入决赛的女子组")
    		} else {
    			fmt.Println("性别输入错误")
    		}
    	} else {
    		fmt.Println("淘汰未进入决赛")
    	}
    }
    

    输出结果如图所示:

    在这里插入图片描述


    三.switch分支控制

    switch语句用于基于不同条件执行不同动作,每个case分支都是唯一的,从上往下逐一测试,直到匹配为止。注意,匹配项后面不需要再加break

    基本语法如下:

    switch 表达式 {
    
    case 表达式1, 表达式2, ...:
    	语句块1
    case 表达式3, 表达式4, ...:
    	语句块2
    	....
    default:
        语句块n
    }
    

    对应的流程图如下所示:

    • switch的执行流程是先执行表达式,得到值,然后和case的表达式进行比较,如果相等,就匹配到;接着执行对应case的语句块,然后退出switch控制。
    • 如果switch表达式的值没有和任何case的表达式匹配成功,则执行default的语句块,执行后退出switch的控制。
    • golang中的case后的表达式可以有多个,使用逗号间隔。
    • golang中的case语句块不需要写break,因为默认会有。即在默认情况下,当程序执行完case语句块后,就直接退出该switch控制结构。

    在这里插入图片描述

    下面简单实现一个switch语句案例。请编写程序实现输入某个字符,然后a表示周一,b表示周二,c表示周三,根据用户的输入依次显示信息。

    package main
    import "fmt"
    
    func main() {
    	var key byte
    	fmt.Println("请输入a到g的一个字符")
    	fmt.Scanf("%c", &key)
    
    	//switch语句
    	switch key {
    		case 'a':
    			fmt.Println("今天星期一")
    		case 'b':
    			fmt.Println("今天星期二")
    		case 'c':
    			fmt.Println("今天星期三")
    		case 'd':
    			fmt.Println("今天星期四")
    		case 'e':
    			fmt.Println("今天星期五")
    		case 'f':
    			fmt.Println("今天星期六")
    		case 'g':
    			fmt.Println("今天星期天")
    		default:
    			fmt.Println("输入有误....")
    	}
    }
    

    输出结果如下图所示:

    在这里插入图片描述

    注意事项:
    (1) case和switch后是一个表达式,即常量值、变量、一个有返回值的函数等

    在这里插入图片描述

    (2) case后的各个表达式值的数据类型,必须和switch的表达式数据类型一致

    在这里插入图片描述

    (3) case后面可以带多个表达式,使用逗号间隔,如下图所示:

    在这里插入图片描述

    (4) case后的表达式如果是常量值,则要求不能重复

    在这里插入图片描述

    (5) case后面不需要带break,程序匹配到一个case后就会执行对应的代码块,然后退出switch,如果一个都匹配不到,则执行default

    (6) default语句不是必须的

    (7) switch后也可以不带表达式,类似于if-else分支来使用;同时case中也可以对范围进行判断

    package main
    import "fmt"
    
    func main() {
    	//switch后不接表达式 类似于if-else分支来使用
    	var age int = 10
    
    	switch {
    		case age == 10:
    			fmt.Println("年龄为10")
    		case age == 20:
    			fmt.Println("年龄为20")
    		default:
    			fmt.Println("没有匹配到")
    	}
    
    	//case中也可以对范围进行判断
    	var score int = 90
    	switch {
    		case score > 90:
    			fmt.Println("成绩优秀...")
    		case score >= 70 && score <= 90:
    			fmt.Println("成绩良好...")
    		case score >=60 && score <70:
    			fmt.Println("成绩及格...")
    		default:
    			fmt.Println("不及格")
    	}
    }
    

    (8) switch后也可以直接声明定义变量,分好结束,但不推荐使用。

    在这里插入图片描述

    (9) switch穿透fallthrough。如果在case语句块后增加fallthrough,则会继续执行下一个case,也叫switch穿透。

    package main
    import "fmt"
    
    func main() {
    	//switch穿透fallthrough
    	var age int = 10
    
    	switch age {
    		case 10:
    			fmt.Println("年龄为10")
    			fallthrough   //默认只能穿透一层
    		case 20:
    			fmt.Println("年龄为20")
    			fallthrough
    		case 30:
    			fmt.Println("年龄为30")
    		default:
    			fmt.Println("没有匹配到")
    	}
    
    }
    

    输出结果如下图所示:

    在这里插入图片描述

    (10) Type Switch。switch语句还可以被用于type-switch来判断某个interface(接口)变量中实际指向的变量类型。后续文章会补充interface。

    package main
    import "fmt"
    
    func main() {
    	//type-switch
    	var x interface{}     //定义空接口
    	var y = 10.0
    	x = y
    
    	switch i := x.(type) {
    		case nil:
    			fmt.Printf("x的类型是:%T", i)
    		case int:
    			fmt.Printf("x是int型")
    		case float64:
    			fmt.Printf("x是float64型")   //输出结果
    		case func(int) float64:
    			fmt.Printf("x是func(int)型")
    		case bool, string:
    			fmt.Printf("x是bool或string型")
    		default:
    			fmt.Println("未知类型")
    	}
    }
    

    最后简单总结switch和if的区别:

    • 如果判断的具体数值不多,而且符合整数、浮点数、字符、字符串这几种类型,建议使用switch语句,简洁高效。
    • 其他情况:对区间判断和结果为bool类型的判断使用if,并且if的使用范围更广。
    • 作者个人习惯是使用if语句,很少用到switch语句。

    四.编程练习

    1.题目

    (1) 判断一个年份是否是闰年,闰年的条件是符合以下二者之一。

    • 年份能被4整除,但不能被100整除
    • 年份能被400整除

    (2) 请分别使用if和switch语句实现成绩判断,输出分数对应的等级。

    • [100, 90] => A
    • [80, 90) => B
    • [70, 80) => C
    • [60, 70) => D
    • [0, 60) => E

    (3) 根据淡旺季的月份和年龄,实现一个票价系统。

    • 旺季:4-10月
      成人(18-60岁):60
      儿童(<18):半价
      老人(>60):1/3
    • 淡季
      成人:40
      其他:20

    (4) 使用switch语句实现:根据用户输入月份,输出对应春夏秋冬季节。

    (5) 求ax^2+bx+c=0方程的根。a、b、c分别为函数的参数,如果b^2-4ac>0,则有两个解;如果b^2-4ac=0,则有一个解;否则无解。

    • 提示:x1=(-b+sqrt(b^2-4ac))/2a
    • 提示:x2=(-b-sqrt(b^2-4ac))/2a

    2.答案

    (1) 判断一个年份是否是闰年,闰年的条件是符合以下二者之一。

    • 年份能被4整除,但不能被100整除
    • 年份能被400整除

    代码如下:

    package main
    import "fmt"
    
    func main() {
    	//判断闰年
    	var year int
    	fmt.Println("请输入年份:")
    	fmt.Scanln(&year)
    
    	if (year % 4 == 0 && year % 100 !=0) || year % 400 == 0 {
    		fmt.Println(year, "是闰年~")
    	} else {
    		fmt.Println(year, "不是闰年~")
    	}
    }
    

    输出结果如下图所示:

    在这里插入图片描述


    (2) 请分别使用if和switch语句实现成绩判断,输出分数对应的等级。

    • [100, 90] => A
    • [80, 90) => B
    • [70, 80) => C
    • [60, 70) => D
    • [0, 60) => E

    代码如下:

    package main
    import "fmt"
    
    func main() {
    	var score int
    	fmt.Println("请输入分数:")
    	fmt.Scanln(&score)
    
    	//if判断
    	if score >= 90 {
    		fmt.Println("分数等级为A")
    	} else if score >= 80 && score < 90 {
    		fmt.Println("分数等级为B")
    	} else if score >= 70 && score < 80 {
    		fmt.Println("分数等级为C")
    	} else if score >= 60 && score < 70 {
    		fmt.Println("分数等级为D")
    	} else {
    		fmt.Println("不及格等级为E")
    	}
    
    	//switch判断
    	switch {
    		case score > 90:
    			fmt.Println("分数等级为A")
    		case score >= 80 && score < 90:
    			fmt.Println("分数等级为B")
    		case score >=70 && score < 80:
    			fmt.Println("分数等级为C")
    		case score >=60 && score < 70:
    			fmt.Println("分数等级为D")
    		default:
    			fmt.Println("不及格等级为E")
    	}
    }
    

    输出结果如下图所示:
    在这里插入图片描述


    (3) 根据淡旺季的月份和年龄,实现一个票价系统。

    • 旺季:4-10月
      成人(18-60岁):60
      儿童(<18):半价
      老人(>60):1/3
    • 淡季
      成人:40
      其他:20

    代码如下:

    package main
    import "fmt"
    
    func main() {
    	//出票系统
    	var month byte
    	var age byte
    	var price float64 = 60.0
    
    	fmt.Println("请输入游玩月份:")
    	fmt.Scanln(&month)
    	fmt.Println("请输入游客年龄:")
    	fmt.Scanln(&age)
    
    	if month >= 4 && month <= 10 {
    		//旺季
    		if age > 60 {
    			fmt.Printf("%v月 票价 %v 年龄 %v \n", month, price / 3, age)
    		} else if age >= 18 {
    			fmt.Printf("%v月 票价 %v 年龄 %v \n", month, price, age)
    		} else {
    			fmt.Printf("%v月 票价 %v 年龄 %v \n", month, price / 2, age)
    		}
    	} else {
    		//淡季
    		if age >= 18 && age < 60 {
    			fmt.Println("淡季成人票价 40")
    		} else {
    			fmt.Println("淡季儿童和老人票价 20")
    		}
    	}
    }
    

    输出结果如下图所示:

    在这里插入图片描述


    (4) 使用switch语句实现:根据用户输入月份,输出对应春夏秋冬季节。

    代码如下:

    package main
    import "fmt"
    
    func main() {
    	//季节判断
    	var month byte
    	fmt.Println("请输入月份:")
    	fmt.Scanln(&month)
    
    	switch month {
    		case 3, 4, 5:
    			fmt.Println("Spring")
    		case 6, 7, 8:
    			fmt.Println("Summer")
    		case 9, 10, 11:
    			fmt.Println("Autumn")
    		case 12, 1, 2:
    			fmt.Println("Winter")
    		default:
    			fmt.Println("Error Input")
    	}
    }
    

    输出结果如下图所示:

    在这里插入图片描述


    (5) 求ax^2+bx+c=0方程的根。a、b、c分别为函数的参数,如果b^2-4ac>0,则有两个解;如果b^2-4ac=0,则有一个解;否则无解。

    • 提示:x1=(-b+sqrt(b^2-4ac))/2a
    • 提示:x2=(-b-sqrt(b^2-4ac))/2a

    注意,需要引入math.Sqrt(num)即可求平方根

    package main
    import "fmt"
    import "math"
    
    func main() {
    	/* 
    	 分析思路
    	   1) a,b,c是给出的变量
    	   2) 使用给出的数学公式和多分支语句计算
    	   3) 导入math包计算平方根
    	*/
    	var a float64
    	var b float64
    	var c float64
    	fmt.Println("请输入abc三个变量")
    	fmt.Scanf("%f %f %f", &a, &b, &c)
    	fmt.Printf("a=%v b=%v c=%v \n", a, b, c)
    
    	m := b * b - 4 * a * c
    	if m > 0 {
    		x1 := (-b + math.Sqrt(m)) / (2 * a)
    		x2 := (-b - math.Sqrt(m)) / (2 * a)
    		fmt.Printf("x1=%v x2=%v", x1, x2)
    	} else if m == 0 {
    		x1 := (-b + math.Sqrt(m)) / (2 * a)
    		fmt.Printf("x1=%v", x1)
    	} else {
    		fmt.Printf("无解")
    	}
    }
    

    输出结果如下图所示:

    在这里插入图片描述


    五.总结

    写到这里,这篇基础性Golang文章介绍完毕,希望您喜欢!祝大家新年快乐,牛气冲天,也希望自己能分享更优秀、更深入的文章。

    • 一.顺序控制语句
    • 二.条件控制语句
      1.单分支控制
      2.双分支控制
      3.多分支控制
      4.嵌套分支
    • 三.switch分支控制
    • 四.编程练习
      1.题目
      2.答案

    Go基本运算和进制转换了解后,后面的文章将详细介绍Go语言的条件语句和循环语句知识,并结合案例进行普及。希望这篇基础性文章对您有帮助,写得不好的地方还请海涵。同时非常感谢参考文献中的大佬们的文章分享,尤其是韩顺平老师,深知自己很菜,得努力前行。也希望自己能深入下去,未来四年好好研究Go编程语言,做更多实际工程,写更好的文章,共勉!

    源代码下载地址:

    2020年在github的绿瓷砖终于贴完了第一年提交2100余次,获得1500多+stars,开源93个仓库,300个粉丝。挺开心的,希望自己能坚持在github打卡五年,督促自己不断前行。简单总结下,最满意的资源是YQ爆发时,去年2月分享的舆情分析和情感分析,用这系列有温度的代码为武汉加油;最高赞的是Python图像识别系列,也获得了第一位来自国外开发者的贡献补充;最花时间的是Wannacry逆向系列,花了我两月逆向分析,几乎成为了全网最详细的该蠕虫分析;还有AI系列、知识图谱实战、CVE复现、APT报告等等。当然也存在很多不足之处,希望来年分享更高质量的资源,也希望能将安全和AI顶会论文系列总结进来,真诚的希望它们能帮助到大家,感恩有你,一起加油~

    在这里插入图片描述

    2020年8月18新开的“娜璋AI安全之家”,主要围绕Python大数据分析、网络空间安全、人工智能、Web渗透及攻防技术进行讲解,同时分享论文的算法实现。娜璋之家会更加系统,并重构作者的所有文章,从零讲解Python和安全,写了近十年文章,真心想把自己所学所感所做分享出来,还请各位多多指教,真诚邀请您的关注!谢谢。

    在这里插入图片描述

    (By:娜璋AI之家 Eastmount 2021-02-16 星期二 夜于贵阳 https://blog.csdn.net/Eastmount)


    参考文献:


    展开全文
  • MySQL - SQL语句执行顺序

    千次阅读 2018-06-15 12:46:44
    【1】SQL执行语法顺序 --查询组合字段 (5)select (5-2) distinct(5-3) top(&lt;top_specification&gt;)(5-1)&lt;select_list&gt; --连表 (1)from (1-J)&lt;left_table&gt;&lt;join_...
  • 掌握线性表、顺序表的建立、遍历、插入、删除、读取等基本操作的编程实现,也可以进一步编程实现逆序等操作,存储结构可以采用顺序存储结构和链表存储结构之一,可以依次完成主要功能来体现功能的正确性,用菜单进行...
  • 消息的顺序问题 消息的重复问题 RocketMQ作为阿里开源的一款高性能、高吞吐量的消息中间件,它是怎样来解决这两个问题的?RocketMQ有哪些关键特性?其实现原理是怎样的? 关键特性及其实现原理 一、顺序...
  • 命令执行顺序控制与管道

    千次阅读 2016-05-01 16:10:46
    命令执行顺序控制与管道知识点顺序执行、选择执行、管道、cut 命令、grep 命令、wc 命令、sort 命令等,高效率使用 Linux 的技巧。命令执行顺序的控制顺序执行多条命令通常情况下,我们每次只能在终端输入一条命令,...
  • RocketMQ顺序、重复问题

    千次阅读 2017-09-06 21:02:42
    消息的顺序问题 消息的重复问题   RocketMQ作为阿里开源的一款高性能、高吞吐量的消息中间件,它是怎样来解决这两个问题的?RocketMQ有哪些关键特性?其实现原理是怎样的?   关键特性及其实现原理
  • 消息的顺序问题 消息的重复问题 RocketMQ作为阿里开源的一款高性能、高吞吐量的消息中间件,它是怎样来解决这两个问题的?RocketMQ有哪些关键特性?其实现原理是怎样的? 关键特性及其实现原理 一、顺序...
  • MySQL的查询语句语法虽然是描述性语言,但是在使用的时候,我发现如果语句书写顺序正确的话,还是很容易发生报错的,如果您已经学了查询语句的概念,但是写代码的时候有些模糊,那我后面写的可能会对您有所帮助!...
  • 个### BEGIN大概就是windows启动项Windows 7 (loader) (on /dev/sda1)。每次更新内核,你都要重新修改这个启动项。 或者 修改文件/boot/grub/grub.cfg中的GRUB_DEFAULT=0为4,再通过sudo update-grub更新/boot/...
  • 序号Sequence Number,有顺序的号码,如数字序号:1、2、3……,大写汉字也算数字序号,如:一、二、三……序号可以清晰的分清同一类事物,也可以用序号作文章的小标题。我们在写文章,特别是在写论文中经常会用一些...
  • 正确地创建和使用索引是实现高性能查询的基础。前面文章MySQL性能优化(三):深入理解索引的这点事已经介绍了各种类型的索引及其特点,而在实际使用索引中,如何真正有效地发挥索引的价值,还需要进一步持续不断第...
  • Python多层装饰器执行顺序理解

    千次阅读 2018-10-11 16:47:05
    但是,博客的最后一个例子我还是没有能够正确写出执行结果。因此我又自己写了一个多层修饰器的例子。以下是我对执行过程的理解。 # an example of python decorator def deco1(func): print(...
  • RedHat系列开机启动脚本顺序

    千次阅读 2013-11-16 17:46:39
    RedHat系列Linux开机启动脚本顺序 如果服务器重启之后还需要手工开启相关服务、那还说明上次的配置工作未完成,现特地总结了下red hat linux下开机自动启动脚本所涉及的知识和方法、如下: 一、相关基础知识点 1...
  • C语言 - 【回溯算法】迷宫问题 (顺序栈与链栈)

    千次阅读 多人点赞 2018-11-07 14:14:12
    本质上秉承着:"正确前进错误返回"的原则,通过入栈存储以前经过的所有节点, 当在一个方向上遇到死路,则依次弹栈返回前一个节点,继续按照相同的规律继续下一步的判断+入栈+弹栈操作。 < 本篇文章主要通过...
  • GCC、头文件查找顺序总结

    万次阅读 2016-04-28 21:56:52
    注意:若编译器在命令行中从左向右顺序读取.o文件,则它们的出现顺序有限制:含有某函数定义的文件 必须出现在含有调用该函数的文件之后。好在GCC无此限制。 编译预处理 ------------------...
  •  序号Sequence Number,有顺序的号码,如数字序号:1、2、3……,大写汉字也算数字序号,如:一、二、三……序号可以清晰的分清同一类事物,也可以用序号作文章的小标题。我们在写文章,特别是在写论文中经常会用...
  • Linux开机启动顺序小结

    万次阅读 2012-04-21 20:45:06
    这是因为BIOS中包含了CPU的相关信息、设备启动顺序信息、硬盘信息、内存信息、时钟信息、PnP特性等等。在此之后,计算机心里就有谱了,知道应该去读取哪个硬件设备了。在BIOS将系统的控制权交给硬盘第一个扇区之后,...
  • 查询执行流程->SQL解析顺序

    千次阅读 2018-06-29 12:05:49
    优化排序(在老版本MySQL会使用两次传输排序,即先读取指针和需要排序的字段在内存中对其排序,然后再根据排序结果去读取数据,而新版本采用的是单次传输排序,也就是一次读取所有的数据,然后根据给定的列...
  • Oracle语句执行流程 第一步:客户端把语句发给服务器端执行 当我们在客户端执行SQL语句时,客户端会把这条SQL语句发送给服务器端,让服务器端的进程来处理这语句。...Oracle SQL语句执行顺序 (8)SELECT...
  • 第1章 Java 主方法中的顺序结构

    千次阅读 2020-05-12 16:01:59
    public class Test4 { public static void main(String[] args) { // 请在下面的Begin-End之间按照注释中给出的提示编写正确的代码 /********** Begin **********/ // 第一步:声明 int 型变量 pre,值为一...
  • ORCLE-Select 语句执行顺序以及如何提高Oracle 基本查询效率  今天把这几天做的练习复习了一下,不知道自己写得代码执行的效率如何以及要如何提高,于是乎上网开始研究一些材料,现整理如下:  ...
  • 例如,要组合类型选择器和类选择器,一个元素必须满足两个要求:它必须是正确的类型和正确的类以便使样式规则可以作用于它。 外部信息:伪类和伪元素 在CSS1中,样式通常是基于在HTML源代码中出现的标记和属性。对于很...
  • 贪心算法正确性证明

    万次阅读 2016-10-07 20:47:35
    贪心算法正确性证明(转载from刘子韬) 这里主要是介绍一种证明贪心算法是最优的一种方法:Exchange Argument (不知道应该怎么翻译到中文,交换参数?感觉听起来挺别扭的,不像是一个方法的名字~o(╯□╰)...
  • sql和mysql对于别名不能调用的一些理解   在写sql的时候,由于有部分语句别名不能调用,百度了一下原因,原来是...把网上找到资料总结了一下,sql和mysql执行顺序,发现内部机制是一样的。最大区别是在别名的引
  • 关于C/C++ 表达式求值顺序 未定义

    千次阅读 2010-01-09 12:52:00
    ++中大部分表达式都没有顺序点,只有下面种表达式有: 1 函数。函数调用之前有一个求值顺序点。 2 && || 和 ?: 这三个包含逻辑的表达式。其左侧逻辑完成后有一个求值顺序点。 3 逗号表达式。逗号...
  • 常言道:“男怕入错,女怕嫁错郎。”一次考试的超常不值得过分庆幸,一次考试的失误不值得过多自责,将来的努力程度会冲淡这一切。但可怕的是选择了垃圾专业,南辕北辙,越是努力反而越失败。化学专业就是大学最...
  • 保证消息顺序正确姿势 这样的模型就严格保证消息的顺序,细心的你仍然会发现问题,消费端1没有响应Server时有两种情况,一种是M1确实没有到达(数据在网络传送中丢失),另外一种消费端已经消费M1且已经发送响应...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 136,242
精华内容 54,496
关键字:

五行正确顺序