JAVA之旅(二)——if,switch,for,while,do while,语句嵌套,流程控制break , continue ,函数,重载的示例总结


JAVA的思想真的很重要,所以要专心的学——献给刚入门的小程序员们

一.语句

一般语句也就三个类型

  • 判断语句 if
  • 选择语句 switch
  • 循环语句 for
  • 当然,还有其他的

我们这里一个一个来讲

1.if

if,如果,就是判断,if(条件){}

//公共的   类   类名
public class HelloJJAVA {
    // 公共的 静态 无返回值 main方法 数组
    public static void main(String[] str) {
        int a = 5;
        if (a > 10) {
            System.out.println("我比10大");
        } else {
            System.out.println("我比10小");
        }
    }
}

输出的结果

这里我们来写一个经典的在题目

//公共的   类   类名
public class HelloJJAVA {
    // 公共的 静态 无返回值 main方法 数组
    public static void main(String[] str) {
        // 根据1-7来判断使星期几

        int day = 3;

        // 判断
        if (day == 1) {
            System.out.println("今天星期一");
        } else if (day == 2) {
            System.out.println("今天星期二");
        } else if (day == 3) {
            System.out.println("今天星期三");
        } else if (day == 4) {
            System.out.println("今天星期四");
        } else if (day == 5) {
            System.out.println("今天星期五");
        } else if (day == 6) {
            System.out.println("今天星期六");
        } else if (day == 7) {
            System.out.println("今天星期七");
        } else {
            System.out.println("不是1-7范围内的数字");
        }

    }
}

应该很容易看懂吧,根据day的值来判断是星期几,如果不是1-7的话就提示不在范围内

所以输出的结果

当然,如果你要判断季节什么的,也可以用逻辑运算来判断,这里就不讲了;

2.switch

这个就是选择了,结构是

switch (表达式) {
        case 取值1:

            break;
        //最终执行
        default:
            break;
        }

我们具体来看看怎么执行的吧

//公共的   类   类名
public class HelloJJAVA {
    // 公共的 静态 无返回值 main方法 数组
    public static void main(String[] str) {

        int a = 3;

        switch (a) {
        case 1:
            System.out.println("1");
            break;
        case 2:
            System.out.println("2");
            break;
        case 3:
            System.out.println("3");
            break;
        case 4:
            System.out.println("4");
            break;
        case 5:
            System.out.println("5");
            break;
        // 最终执行
        default:
            System.out.println("都不是");
            break;
        }

    }
}

这里可以看到,根据a的值来选择要执行的代码块,所以这里输出的是3,如果你把a改成6,那就会输出都不是了

我们这里也来做一个挺经典的题目

//公共的   类   类名
public class HelloJJAVA {
    // 公共的 静态 无返回值 main方法 数组
    public static void main(String[] str) {

        /**
         * 根据用户指定的月份,打印相应的季节
         */

        int month = 7;

        switch (month) {
        case 1:
        case 2:
        case 3:
            System.out.println("春");
            break;
        case 4:
        case 5:
        case 6:
            System.out.println("夏");
            break;
        case 7:
        case 8:
        case 9:
            System.out.println("秋");
            break;
        case 10:
        case 11:
        case 12:
            System.out.println("冬");
            break;

        default:
            System.out.println("输入不再范围内");
            break;
        }

    }
}

这里,输出的是秋

if和switch很像,那什么时候使用呢?如果判断的具体数值不多,而是符合byte short int char 类型,使用switch,其他情况,使用if,虽然都可以,但是switch效率据说稍微高一点点…

3.while

循环语句的一种,循环有三种

  • while
  • do while
  • for

先来看看while

while (条件) {
            // 输出

        }

代码来说明

//公共的   类   类名
public class HelloJJAVA {
    // 公共的 静态 无返回值 main方法 数组
    public static void main(String[] str) {

        int a = 5;
        // 循环5次
        while (a < 10) {
            a++;
            System.out.println("a = " + a);
        }

    }
}

这个代码是while,他会一直循环,当我们循环第一次的时候,a他自增就是6了,他继续循环,。一直到他<10,这样就循环了五次,我们看看输出结果

4. do while

do while要结合while语句这样更容易说明一些事情

//公共的   类   类名
public class HelloJJAVA {
    // 公共的 静态 无返回值 main方法 数组
    public static void main(String[] str) {

        int a = 1;
        do {
            System.out.println("a = " + a);
            a++;
        } while (a < 10);
    }
}

这里运行的结果

我们可以得到的区别就是while会先判断条件再去执行语句,而后者是先去执行再去判断是否要循环

5.for

这个是个大学问,我们看一下语法格式


        /**
         * 条件表达式 循环条件表达式  循环后的操作表达式
         */
        for (int i = 0; i < str.length; i++) {
            //执行语句
        }

我们再具体的看

//公共的   类   类名
public class HelloJJAVA {
    // 公共的 静态 无返回值 main方法 数组
    public static void main(String[] str) {

        /**
         * 条件表达式 循环条件表达式 循环后的操作表达式
         */
        for (int i = 0; i < 10; i++) {
            // 执行语句
            System.out.println("i = " + i);
        }
    }
}

让i去自增十次

这个过程其实while也是可以写的

//公共的   类   类名
public class HelloJJAVA {
    // 公共的 静态 无返回值 main方法 数组
    public static void main(String[] str) {

        int i = 0;
        while (i < 10) {
            System.out.println("i = " + i);
            i++;
        }
    }
}

运行的结果都是一样的,那这两个有什么区别呢?

  • 作用域不同

我们还是以小练习为主吧

首先我们看第一个

//公共的   类   类名
public class HelloJJAVA {
    // 公共的 静态 无返回值 main方法 数组
    public static void main(String[] str) {

        /**
         * 获取1-10的和并且打印
         */
        // 用于存储不断变化的和
        int sum = 0;
        // 记录累加的值
        for (int i = 1; i < 11; i++) {
            sum += i;
        }
        System.out.println("和为:"+sum);
    }
}

这里打印值

好,是不是很简单,我们继续来看下一个

//公共的   类   类名
public class HelloJJAVA {
    // 公共的 静态 无返回值 main方法 数组
    public static void main(String[] str) {
        /**
         * 打印1-100之间7倍数的个数
         */

        int temp = 0;
        for (int i = 1; i <= 100; i++) {
            if (i % 7 == 0) {
                temp++;
            }
        }
        System.out.println("个数为:" + temp);
    }
}

这个是不是也很简单,最重要的是思路

6.语句嵌套

就是语句中还有语句,上面那个例子就是,不过我们这里主讲双层for循环,又叫循环嵌套

//公共的   类   类名
public class HelloJJAVA {
    // 公共的 静态 无返回值 main方法 数组
    public static void main(String[] str) {
        for (int i = 0; i < 3; i++) {
            for (int j = 0; j < 4; j++) {
                System.out.println("Hello");
            }
        }
    }
}

这种格式的,所以我们可以利用这种特点打印一个长方形

//公共的   类   类名
public class HelloJJAVA {
    // 公共的 静态 无返回值 main方法 数组
    public static void main(String[] str) {
        for (int i = 0; i < 4; i++) {
            for (int j = 0; j < 4; j++) {
                System.out.print("*");
            }
            //换行
            System.out.println();
        }
    }
}

看结果

这样,我们再来打印一个直角三角形

//公共的   类   类名
public class HelloJJAVA {
    // 公共的 静态 无返回值 main方法 数组
    public static void main(String[] str) {
        for (int i = 0; i < 10; i++) {
            for (int j = 0; j < i; j++) {
                System.out.print("*");
            }
            // 换行
            System.out.println();
        }
    }
}

得到的结果

那我们换种思路去写一个倒的

//公共的   类   类名
public class HelloJJAVA {
    // 公共的 静态 无返回值 main方法 数组
    public static void main(String[] str) {
        for (int i = 0; i < 10; i++) {
            for (int j = i; j < 10; j++) {
                System.out.print("*");
            }
            // 换行
            System.out.println();
        }
    }
}

小练习是好玩,也是大学时候的经典,我们继续

//公共的   类   类名
public class HelloJJAVA {
    // 公共的 静态 无返回值 main方法 数组
    public static void main(String[] str) {
        for (int i = 0; i < 6; i++) {
            for (int j = 1; j < i; j++) {
                System.out.print(" "+j);
            }
            System.out.println();
        }
    }
}

打印

这些都不算难的,我们来一个九九乘法表,还记得大学里面学这个也费了不少功夫

import java.time.Year;

//公共的   类   类名
public class HelloJJAVA {
    // 公共的 静态 无返回值 main方法 数组
    public static void main(String[] str) {
        /**
         * 九九乘法表
         */
        for (int i = 1; i < 10; i++) {
            for (int j = 1; j < i + 1; j++) {

                System.out.print(j + "*" + i + " = " + j * i + " ");
            }
            System.out.println(" ");
        }
    }
}

打印下结果

7.流程控制语句

这个是什么意思呢

  • break : 跳出 选择和循环结构
  • continue: 继续 循环结构

根本在于,这两个只要不是应用在应用范围内,就是无效的了,这两个语句下面都不能有语句,因为不会执行,continue是结束本次循环继续下次循环,作用范围,我们来案例

//公共的   类   类名
public class HelloJJAVA {
    // 公共的 静态 无返回值 main方法 数组
    public static void main(String[] str) {
        for (int i = 0; i < 3; i++) {
            System.out.println("i : " + i);
            // 跳出循环
            break;
        }
    }
}

运行的结果

当我们循环第一次的时候,break已执行就跳出循环体了,也就不再循环了

那我们再来看看continue

//公共的   类   类名
public class HelloJJAVA {
    // 公共的 静态 无返回值 main方法 数组
    public static void main(String[] str) {
        for (int i = 0; i < 10; i++) {

            if (i % 2 == 1) {
                // 继续循环
                continue;
            }
            System.out.println("i : " + i);
        }
    }
}

打印的结果

当符合i % 2 == 1的时候就继续循环,不再执行下面的语句了

好的,我们语句就暂时到这里,我们用一个等腰三角形的练习来结束

//公共的   类   类名
public class HelloJJAVA {
    // 公共的 静态 无返回值 main方法 数组
    public static void main(String[] str) {
        /**
         * 等腰三角形
         */
        for (int i = 0; i < 5; i++) {
            for (int j = i + 1; j < 5; j++) {
                System.out.print(" ");
            }
            for (int z = 0; z <= i; z++) {
                System.out.print("* ");
            }
            System.out.println();
        }
    }
}

OK,结束

二.函数

函数是什么?

函数就是定义在类中具有特定功能的一段独立小程序,函数也称方法

格式

修饰符 返回类型 函数名 (参数1…参数2){ 执行语句 return 返回值}

毕竟文笔不好,还是直接用代码表达

//公共的   类   类名
public class HelloJJAVA {
    // 公共的 静态 无返回值 main方法 数组
    public static void main(String[] str) {
        /**
         * 求任何数+5的和
         */
        System.out.println(getNum(5));
    }

    private static int getNum(int a) {
        return a + 5;
    }
}

这样,我们输出的结果

由此可以看出函数的特点

  • 便于对该功能进行复用
  • 函数只有被调用的时候才会执行
  • 函数的出现提高了代码的复用性
  • 对于函数没有具体返回值的情况,返回值类型可以用void,那么return就可以不用写了

要注意的是

  • 函数中只能调用函数,不可以在函数内部定义函数
  • 定义函数时,函数的结果返回给调用者,交由调用者处理

我们还是通过实际案例来吧

//公共的   类   类名
public class HelloJJAVA {
    // 公共的 静态 无返回值 main方法 数组
    public static void main(String[] str) {

        System.out.println(getNum());
    }

    private static int getNum() {
        return 6 + 5;
    }
}

这样就知道打印了6+5的值

三.重载

函数的重载,我们在构造方法中是见过的,我们来说一下特点

  • 概念

    在同一个类中,允许存在一个以上的同名函数,只要他们的参数或者参数类型不同即可

  • 特点

    与返回值类型无关,只看参数列表

  • 好处

    方便阅读,优化程序设计

代码演示

//公共的   类   类名
public class HelloJJAVA {
    // 公共的 静态 无返回值 main方法 数组
    public static void main(String[] str) {

    }

    private static int getNum(int a) {
        return a;
    }

    private static int getNum(int a, int b) {
        return a + b;
    }

    private static int getNum(int a, int b, int c) {
        return a + b + c;
    }

}

这就是重载

什么时候用重载?

当定义的功能相同、但参与的未知运算不同 ,那么,就定义一个函数名称以表示功能,方便阅读,而通过参数列表的不同来区分同名函数

OK,这个重载的示例就不写了,我们本篇就先到这里吧,下节我们讲数组之类的数据处理,嘻嘻!

我的群,通往Android的神奇之旅 :555974449,欢迎大家进来交流技术!

JAVA之旅(二)——if,switch,for,while,do while,语句嵌套,流程控制break , continue ,函数,重载的示例总结的更多相关文章

  1. java语句与流程控制

    java程序结构按照结构化程序的思想分为顺序结构,选择结构,和循环结构. ①选择语句 选择结构分为单选择,双选择和多选择.双选择是标准的选择结构,单选择是双选择的简化形式,多选择是双选择的嵌套形式. ...

  2. JAVA之旅(三十五)——完结篇,终于把JAVA写完了,真感概呐!

    JAVA之旅(三十五)--完结篇,终于把JAVA写完了,真感概呐! 这篇博文只是用来水经验的,写这个系列是因为我自己的java本身也不是特别好,所以重温了一下,但是手比较痒于是就写出了这三十多篇博客了 ...

  3. 我的Java之旅 第四课 JAVA 语言语法 基础

    1  整型           int num = 1_000_000; //从java 7开始支持的语法 ,只是让人更易读,java编绎器会去除   2  字符串        一定不能使用==运算 ...

  4. 五、Java基础---------if else、switch总结

    在前几篇博客中主要是以笔者遇到的一些典型的题目为例子而展开的讨论,接下来几篇将是以知识点的结构进行讲述.本文主要是讲述if ()else .if() else if().switch() case 的 ...

  5. Java并发(二十二):定时任务ScheduledThreadPoolExecutor

    需要在理解线程池原理的基础上学习定时任务:Java并发(二十一):线程池实现原理 一.先做总结 通过一个简单示例总结: public static void main(String[] args) { ...

  6. Java基本语法--程序流程控制

    流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定功能的小逻辑模块.流程控制方式采用结构化程序设计中规定的三种基本流程结构,即:顺序结构.分支结构.循环结构.本篇博客主要是对 ...

  7. java 基础 流程控制

    鄙人不才,基础不好,趁着闲时简单学习一下,仅作学习分享,如有不正确地方还请各位看客不吝指出. Java流程主要可以分为: 顺序(可以按照正常顺序一步步往下运行的) 选择(三元操作符[?:];if el ...

  8. JAVA之旅(三十二)——JAVA网络请求,IP地址,TCP/UDP通讯协议概述,Socket,UDP传输,多线程UDP聊天应用

    JAVA之旅(三十二)--JAVA网络请求,IP地址,TCP/UDP通讯协议概述,Socket,UDP传输,多线程UDP聊天应用 GUI写到一半电脑系统挂了,也就算了,最多GUI还有一个提示框和实例, ...

  9. JAVA之旅(二十九)——文件递归,File结束练习,Properties,Properties存取配置文件,load,Properties的小练习

    JAVA之旅(二十九)--文件递归,File结束练习,Properties,Properties存取配置文件,load,Properties的小练习 我们继续学习File 一.文件递归 我们可以来实现 ...

随机推荐

  1. COS对象存储服务的使用

    ---------------------------------------------------------------------------------------------[版权申明:本 ...

  2. 疯狂的Django 之深度外键跨表查找之疯狂INNER JOIN

    定义Model: from django.db import models class Moreinfo(models.Model): weight = models.FloatField() hei ...

  3. 六星经典CSAPP-笔记(7)加载与链接(上)

    六星经典CSAPP-笔记(7)加载与链接 1.对象文件(Object File) 1.1 文件类型 对象文件有三种形式: 可重定位对象文件(Relocatable object file):包含二进制 ...

  4. Linux 下的一个全新的性能测量和调式诊断工具 Systemtap, 第 3 部分: Systemtap

    Systemtap的原理,Systemtap与DTrace比较,以及安装要求和安装步骤本系列文章详细地介绍了一个Linux下的全新的调式.诊断和性能测量工具Systemtap和它所依赖的基础kprob ...

  5. Dynamics CRM 安装CRM程序系统检查界面报未将对象引用设置到对象的实例的解决方法

    今天在安装CRM的时候,在系统检查阶段遇到了如下的错误,咋看之下直接是懵逼的 但不要着急,界面上有两个按钮,一个是详细信息,一个是帮助,详细信息不用看了就那一行字也看不出什么,咱们点下帮助看看,定位到 ...

  6. Android Topeka介绍

    概述 当你已经做Android开发一段时间,并苦于进入瓶颈,这个时候阅读一些优秀App的源码是最好的学习进阶方式,前几天,邀请去参加一个Android大会,我作为其中一个演讲者,专门讲解了Androi ...

  7. PHP 文件下载 浅析

    无控制类型 avi文件 rar文件 mp4MP3图片等会被直接解析 核心代码 类型 长度 实现函数 优化 原始下载文件的名称 优化后的文件下载名称 总结 文件下载的功能对一个网站而言基本上是必备的了, ...

  8. Android启动Activity

    Android和java启动的区别 不同于使用 main() 方法启动应用的其他编程范例,Android 系统会通过调用对应于其生命周期中特定阶段的特定回调方法在 Activity 实例中启动代码.有 ...

  9. Java并发框架——什么是AQS框架

    什么是AQS框架 1995年sun公司发布了第一个java语言版本,可以说从jdk1.1到jdk1.4期间java的使用主要是在移动应用和中小型企业应用中,在此类领域中基本不用设计大型并发场景,当然也 ...

  10. Android 系统自动重启Bug(高通平台)

    点击打开链接 最近客户反馈了一个Bug,我们的系统用着用着会自动重启,尤其是在拨号的时候极容易死机或者进入下载模式.根据老大和高通的支持得到了一个解决方案. 在Android系统中,有这么一个文件夹: ...