《Java从入门到放弃》JavaSE篇:程序结构

程序的结构一般分为三种:

  1. 顺序结构。

  2. 选择结构。

  3. 循环结构。

 

一、顺序结构:这个不用多说吧,跟我们平时写文章的顺序一样,从上往下。

 

二、选择结构:从名字就能看出,要选择嘛,到底是要漂亮滴妹子,还是要有钱滴妹子呢!当然,如果是个吊丝码农滴话,那你就不要多想了,还是老老实实码代码吧···

三、循环结构:循环啊,就是一直转啊转啊转啊,转到出意外为止。

 

 

接下来还是老规矩,通过小示例来学习语法吧。

顺序结构:

一、输入姓名和年龄,输出自我介绍。

1
2
3
4
5
6
7
8
9
10
11
12
13
    public static void main(String[] args) {
        //创建输入数据的对象,具体什么叫对象···,先不用管吧
        Scanner input = new Scanner(System.in);
         
        String name;    //姓名
        int age;        //年龄
        System.out.print("请输入姓名:");
        name = input.next();
        System.out.print("请输入年龄:");
        age = input.nextInt();
         
        System.out.println("大家好,我叫"+name+",今年"+age+"岁,请多关照。");
    }

注意:

    这就是一个标准的顺序结构,代码会从上往下执行,如果你把int age;这句话放到最后,那就会在age = input.nextInt();这一行报语法错误了。

结果:

 

选择结构:

选择结构的语法有四种,我们通过下面的案例来了解。

一、输入你的存款,如果大于5000则加上“壕”的头衔。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    public static void main(String[] args) {
        //创建输入数据的对象,具体什么叫对象···,先不用管吧
        Scanner input = new Scanner(System.in);
         
        String name;    //姓名
        int deposit;    //存款
        System.out.print("请输入姓名:");
        name = input.next();
        System.out.print("请输入存款:");
        deposit = input.nextInt();
         
        System.out.print("大家好,我叫"+name);
        if(deposit>5000){
            System.out.print("(壕)");
        }
        System.out.println("。");
    }

语法:

    if( 条件 ){ 要执行的代码 }

注意:

    条件成立时会执行{}中的所有代码。

结果:

    

 

二、输入你的存款,如果大于5000则加上“壕”的头衔,否则加上“穷13”的头衔。

1
2
3
4
5
6
        if(deposit>5000){
            System.out.print("(壕)");
        }
        else{
            System.out.print("(穷13)");
        }

注意:别的代码不用动,只需要在if(){}结构上加上else{}就OK了,else{}表示条件不成立时的执行代码。

结果:

三、输入你的存款,如果大于50000,则加上“神壕”的头衔,否则如果大于30000,则加上“金壕”的头衔,否则如果大于10000,则加上“壕”的头衔,否则加上“穷13”的头衔。

1
2
3
4
5
6
7
8
9
10
11
12
        if(deposit>50000){
            System.out.print("(神壕)");
        }
        else if(deposit>30000){
            System.out.print("(金壕)");
        }
        else if(deposit>10000){
            System.out.print("(壕)");
        }
        else{
            System.out.print("(穷13)");
        }

注意:这种语法叫多分支选择结构(一般用于选择情况大于2的场合,比如演唱会门票的级别、你的女神的胸肌是A还是BCDEF等)。

结果就不展示了。

 

四、查询余额请按1,套餐更改请按2,宽带业务请按3,企业业务请按4,人工服务请按5,其它业务请瞎按.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
    public static void main(String[] args) {
        //创建输入数据的对象,具体什么叫对象···,先不用管吧
        Scanner input = new Scanner(System.in);
        int num;
        System.out.print("1.查询余额请按1,"
                "\n2.套餐更改请按2"
                "\n3.宽带业务请按3"
                "\n4.企业业务请按4"
                "\n5.人工服务请按5"
                "\n6.其它业务请瞎按"
                "\n请选择:");
        num = input.nextInt();
         
        switch (num) {
        case 1:
            System.out.println("您的余额为0。");    break;
        case 2:
            System.out.println("改完了,请回吧。");    break;
        case 3:
            System.out.println("宽带装好了,请交钱1998¥。");    break;
        case 4:
            System.out.println("请上传企业注册资料。");    break;
        case 5:
            System.out.println("我们正在招聘服务人员,请稍等...");    break;
        default:
            System.out.println("乱按好玩吧...");    break;
        }
    }

注意:

  1. switch语法一般用于数值类型和布尔类型等值判断的场合,最新版的JDK支持String类型了。小伙伴们可以自己试试。

  2. 每个case后的语句执行完后都有个小尾巴(break;),表示从这儿退出switch结构,大家可以把这个小尾巴去掉看看结果有什么不一样。

结果:

 

循环结构:

循环结构常用的有四种:while、do...while、for、foreach(后面讲集合时再介绍)。

对应的语法都很简单,我们通过求100以内的奇数和来了解一下,后面再来分析一个经典案例。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
    public static void main(String[] args) {
        //求100以内的奇数和
         
        //1.while循环
        int i = 1;    //循环的初值
        int s = 0;    //保存和
        while (i<=100) {    //循环的条件
            s += i; //循环的内容
            i += 2;    //循环的步长(也就是循环变量的值如何变化)
        }
        System.out.println("while循环结果:"+s);
         
        //变量值还原
        i = 1;
        s = 0;
        //2.do...while循环
        do {
            s += i;
            i += 2;
        while (i<=100);
        System.out.println("do...while循环结果:"+s);
         
        //变量值还原
        s = 0;
        //3.for循环
        for (i = 1; i <= 100; i+=2) {
            s += i;
        }
        System.out.println("for循环结果:"+s);
    }

执行结果:

从上面的语法应该可以看出,循环主要有四个点:初值、条件、步长、循环体(内容)。那么这三种循环的语法有什么区别呢?

while循环:侧重于不确定循环次数的场合,先判断,如果条件成立则进入循环。

do...while循环:侧重于不确定循环次数的场合,先执行一次,之后如果条件成立则时入循环。

for循环:侧重于确定循环次数的场合。

与循环配合使用的还有两个关键字:continue和break;

他们的作用,看代码和结果吧:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    public static void main(String[] args) {
        for (int i = 0; i < 10; i++) {
            if(i==5){
                continue;
            }
            System.out.print(i+",");
        }
        System.out.println("\n=======================");
        for (int i = 0; i < 10; i++) {
            if(i==5){
                break;
            }
            System.out.print(i+",");
        }
    }

结果:

注意到两个的区别了吧

运行continue后,就不再执行循环里面continue后面的代码,直接运行i++去了。

而运行break后,则直接跳出了循环,后面的都不执行了。

 

经典案例:登录功能,如果账号密码输入正确则登录成功,否则请再次输入密码。

    分析:

    登录时要输入几次账号密码?很明显不知道啊!!!所以for循环被排除了。

    然后再判断,是要先输入账号密码后判断,还是先判断后再输入账号密码呢?

    这也很明显,要先输入了才需要判断啊!!!所以while循环也被排除了。

    最后就剩下do...while循环了。代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
    public static void main(String[] args) {
        //模拟登录功能
        //分析过程:
        //1.定义保存账号和密码的变量
        Scanner input = new Scanner(System.in);
        String inLoginID;
        String inLoginPWD;
        //2.因为还没学习数据库,所以定义两个变量保存正确的账号和密码
        String loginID = "liergou";
        String loginPWD = "haha250";
        //3.输入账号和密码
        do{
            System.out.print("请输入账号:");
            inLoginID = input.next();
            System.out.print("请输入密码:");
            inLoginPWD = input.next();
            //4.判断输入的账号和密码与正确的是否相同(判断字符串是否相等使用equals方法),
            //如果相同等提示登录成功,循环结束,否则提示重新输入
            if(inLoginID.equals(loginID) && inLoginPWD.equals(loginPWD)){
                System.out.println("登录成功!");
                break;
            }
            else{
                System.out.println("账号和密码不匹配,请重新输入!");
            }
        }while (true);
    }

如果你非要使用while和for,那··············当然也是可以滴,只不过代码复杂度会上升,特别是使用for来写的话会很奇怪,大伙可以看看:

这是使用while的写法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
    public static void main(String[] args) {
        //模拟登录功能
        //分析过程:
        //1.定义保存账号和密码的变量
        Scanner input = new Scanner(System.in);
        String inLoginID;
        String inLoginPWD;
        //2.因为还没学习数据库,所以定义两个变量保存正确的账号和密码
        String loginID = "liergou";
        String loginPWD = "haha250";
        //3.输入账号和密码
        System.out.print("请输入账号:");
        inLoginID = input.next();
        System.out.print("请输入密码:");
        inLoginPWD = input.next();
             
        while (true){
            //4.判断输入的账号和密码与正确的是否相同(判断字符串是否相等使用equals方法),
            //  如果相同等提示登录成功,循环结束,否则提示重新输入
            if(inLoginID.equals(loginID) && inLoginPWD.equals(loginPWD)){
                System.out.println("登录成功!");
                break;
            }
            else{
                System.out.println("账号和密码不匹配,请重新输入!");
                //下面的代码重复了
                System.out.print("请输入账号:");
                inLoginID = input.next();
                System.out.print("请输入密码:");
                inLoginPWD = input.next();
            }
        }
    }

 

下面是使用for的写法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
        for (;true;){
            //4.判断输入的账号和密码与正确的是否相同(判断字符串是否相等使用equals方法),
            //  如果相同等提示登录成功,循环结束,否则提示重新输入
            if(inLoginID.equals(loginID) && inLoginPWD.equals(loginPWD)){
                System.out.println("登录成功!");
                break;
            }
            else{
                System.out.println("账号和密码不匹配,请重新输入!");
                //下面的代码重复了
                System.out.print("请输入账号:");
                inLoginID = input.next();
                System.out.print("请输入密码:");
                inLoginPWD = input.next();
            }
        }

 

最后,再布置几个练习,各位看官自己分析并练习练习吧,看具体使用哪种循环最好。

1.    打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。 

2.    将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。

3.    球从100M高度自由落下,每次落地后反跳回原高度的一半,再落下,求它在第10次落地时,共经过多少M?第10次反弹多高?

4.    任意输入一个整数(小于6位),求它的位数询问

5.  “我爱你,嫁给我吧?”,选择“你喜欢我吗?(y/n):",如果输入为y则打印”我们形影不离“,若输入为n,则继续询问

 

如果有不确定答案的练习,就在评论里讨论吧···

转载于:https://www.cnblogs.com/xlcker/p/7514488.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/369311.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

css中border制作各种形状

css利用border制作各种形状的原理如图&#xff1a; 使用border绘制三角形是什么原理&#xff1f;事实上&#xff0c;宽度相等的border是以45度对接的&#xff0c;如下图: 没有了上border如图所示&#xff1a; 再设置border的宽度为0&#xff1a; 设置border的高度为0&#xff…

JPA和CMT –为什么捕获持久性异常不够?

使用CMT&#xff08; 容器管理的事务 &#xff09;进入EJB和JPA的世界非常舒适。 只需定义一些注释来划分事务边界即可&#xff08;或使用默认值&#xff09;&#xff0c;仅此而已–无需摆弄手动开始&#xff0c;提交或回滚操作。 回滚事务的一种方法是从EJB的业务方法中引发非…

2016 linux发行版排行_选择困难症必看!云服务器如何选择操作系统,Windows和Linux哪个更好?...

在购买云服务器时&#xff0c;会有一个必选的配置&#xff0c;就是操作系统的选择&#xff0c;如何选择操作系统&#xff1f;操作系统选择错了怎么办&#xff1f;这是不少用户会遇到的问题&#xff0c;今天我们就来教大家如何选择操作系统&#xff0c;以及操作系统选择错了&…

spring取得通过配置文件和注解注入的bean、取得当前数据库连接、取得ApplicationContext的方法...

spring取得通过配置文件和注解注入的bean、取得当前数据库连接、取得ApplicationContext的方法 1、思路&#xff1a; 应用程序启动时使用ApplicationContextAware让Spring容器传递自己生成的ApplicationContext给我们&#xff0c; 然后我们把这个ApplicationContext设置成一个类…

怎样不通过高考进入清华计算机系,山东高考状元孟令昊澄清,没有参加政审,已经填报清华计算机系!...

原标题&#xff1a;山东高考状元孟令昊澄清&#xff0c;没有参加政审&#xff0c;已经填报清华计算机系&#xff01;说到高考状元&#xff0c;其实每年在高考分数公布以后和志愿填报的时候&#xff0c;他们都是大家最为关注的群体&#xff0c;特别是对于这些状元的去向成为了很…

DOM BOM document window 区别

DOM 是为了操作文档出现的 API&#xff0c;document 是其的一个对象&#xff1b; BOM 是为了操作浏览器出现的 API&#xff0c;window 是其的一个对象。 使用下图讲解&#xff1a; 归DOM管的&#xff1a; E区&#xff1a;即document 归BOM管的&#xff1a; A区&#xff1a;浏览…

提取Java集合的元素-Java 8方法

我们所有人都广泛使用了Collection类&#xff0c;例如List&#xff0c;Map及其派生版本。 每次使用它们时&#xff0c;我们都必须遍历它们以找到某个元素或更新这些元素&#xff0c;或者找到匹配某个条件的不同元素。 考虑如下所示的人员列表&#xff1a; List<Person> …

D2

依托 Weex 的能力&#xff0c;轻舟平台使得前端开发人员可以基于 Vue 或者 Rax&#xff08;类 React&#xff09;开发媲美原生的 App。 不需要学习各类 Native 开发语言&#xff1b;不需要搭建复杂的编译打包环境&#xff0c;轻舟提供的一站式集成开发解决方案全部帮你搞定。吴…

hibernate5--主键生成策略

1、hibernate自己维护主键的值。首先获取该表中最大主键值&#xff0c;然后加一插入。主键字段对应的属性类型可以是int、short、long以及其封装类型。在高并发或者集群的情况下不能使用。 2、identity&#xff1a;使用数据库自身自增长来维护。 <id name"id" col…

vue watch 第一次不执行_Vue 实现前进刷新,后退不刷新的效果

https://github.com/woai3c/Front-end-articles​github.com需求一&#xff1a;在一个列表页中&#xff0c;第一次进入的时候&#xff0c;请求获取数据。点击某个列表项&#xff0c;跳到详情页&#xff0c;再从详情页后退回到列表页时&#xff0c;不刷新。也就是说从其他页面进…

win8计算机安全模式,安全模式,详细教您Win8怎么进入安全模式

电脑的用途在我们的日常生活之中体现的是最为突出了&#xff0c;比方说网上购物、看电视、玩游戏、做文件什么的都用得着电脑。但是有用户遇到了Win8系统按F8无法进入安全模式怎么办&#xff1f;非也&#xff0c;非也&#xff0c;下面&#xff0c;小编给大家带来了Win8进入安全…

元素加了position:absolute则该元素的text-align:center居中失效的解决办法

position:absolute;top:50%;left:50%;-webkit-transform: translate(-50%,-50%);-moz-transform: translate(-50%,-50%);transform:translate(-50%,-50%); 当元素变为position:absolute时&#xff0c;该元素不占据文档流&#xff0c;text-align&#xff1a;center失效&#xff…

elasticsearch-6.0.1安装

elasticsearch-6.0.1安装 0. 介绍&#xff1a;ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎&#xff1b;是目前全文搜索引擎的首选。Elastic 的底层是开源库 Lucene。但是&#xff0c;没法直接用 Lucene&#xff0c;必须自己写代码…

使用GlassFish 4.0测试驱动Java API以处理JSON

编写规范并为其做出贡献是一回事。 如果您想提供宝贵的反馈意见&#xff0c;请使用它并研究真实的示例。 最新推广的GlassFish构建包含重命名为4.0&#xff0c;我认为现在是对Java处理JSON&#xff08;JSON-P&#xff09;API进行测试的好时机。 获取启用了Java EE 7的GlassFis…

查询已有链表的hashmap_原创 | 面试不再慌,看完这篇保证让你写HashMap跟玩一样...

点击上方蓝色小字&#xff0c;关注“码农小黑屋”重磅干货&#xff0c;第一时间送达今天这篇文章给大家讲讲hashmap&#xff0c;这个号称是所有Java工程师都会的数据结构。为什么说是所有Java工程师都会呢&#xff0c;因为很简单&#xff0c;他们不会这个找不到工作。几乎所有面…

华为p40手机自带计算机,华为p40pro支持PC模式吗_华为p40pro能连接至电脑模式吗

华为p40pro支持PC模式吗&#xff1f;华为p40pro能连接至电脑模式吗&#xff1f;从前几年开始&#xff0c;就有部分华为手机可以支持PC模式了。这个模式在出差的时候还是很实用的&#xff0c;可以直接将手机上的内容投屏到投影仪等大屏设备上&#xff0c;不需要带笔记本电脑&…

工欲善其事

持续补充更新中....... 工具箱汇总 娄老师的超强百宝箱 &#xff08;必看&#xff01;&#xff01;&#xff09;张老师 的总结 在博客中插入代码作业高分博客指南冲刺博客指南环境搭建 Git和Github教程Git简明指南猴子都能懂的GIT入门Coding使用方法如何使用Git和码云转载于:ht…

在Bootstrap框架中,form-control的效果

在Bootstrap框架中&#xff0c;通过定制了一个类名form-control&#xff0c;也就是说&#xff0c;如果这几个元素使用了类名“form-control”&#xff0c;将会实现一些设计上的定制效果。 1、宽度变成了100% 2、设置了一个浅灰色&#xff08;#ccc&#xff09;的边框 3、具有…

ubuntu 使用apt-get install 安装php5.6--php7

使用ppa增加源:$ sudo apt-get install python-software-properties $ sudo add-apt-repository ppa:ondrej/php $ sudo apt-get update $ sudo apt-get install -y php7.0 php7.0-mysql php7.0-curl php7.0-json php7.0-cgi然后可以查看php版本:php -v关于php5.4--php5.6版本 …

实体管理器的类型:应用程序管理的EntityManager

JPA规范定义了几种类型的EntityManagers / Persistence Context。 我们可以有&#xff1a; 扩展的和事务范围的EntityManager&#xff0c; 容器管理或应用程序管理的EntityManager。 JTA或本地资源EntityManager&#xff0c; 除了上述区别外&#xff0c;我们还可以在其中存…