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

释放双眼,带上耳机,听听看~!

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


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

一.语句

一般语句也就三个类型

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

我们这里一个一个来讲

1.if

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


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

输出的结果

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


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
1//公共的   类   类名
2public class HelloJJAVA {
3    // 公共的 静态 无返回值 main方法 数组
4    public static void main(String[] str) {
5        // 根据1-7来判断使星期几
6
7        int day = 3;
8
9        // 判断
10        if (day == 1) {
11            System.out.println("今天星期一");
12        } else if (day == 2) {
13            System.out.println("今天星期二");
14        } else if (day == 3) {
15            System.out.println("今天星期三");
16        } else if (day == 4) {
17            System.out.println("今天星期四");
18        } else if (day == 5) {
19            System.out.println("今天星期五");
20        } else if (day == 6) {
21            System.out.println("今天星期六");
22        } else if (day == 7) {
23            System.out.println("今天星期七");
24        } else {
25            System.out.println("不是1-7范围内的数字");
26        }
27
28    }
29}
30

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

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

2.switch

这个就是选择了,结构是


1
2
3
4
5
6
7
8
9
1switch (表达式) {
2        case 取值1:
3
4            break;
5        //最终执行
6        default:
7            break;
8        }
9

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


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
1//公共的   类   类名
2public class HelloJJAVA {
3    // 公共的 静态 无返回值 main方法 数组
4    public static void main(String[] str) {
5
6        int a = 3;
7
8        switch (a) {
9        case 1:
10            System.out.println("1");
11            break;
12        case 2:
13            System.out.println("2");
14            break;
15        case 3:
16            System.out.println("3");
17            break;
18        case 4:
19            System.out.println("4");
20            break;
21        case 5:
22            System.out.println("5");
23            break;
24        // 最终执行
25        default:
26            System.out.println("都不是");
27            break;
28        }
29
30    }
31}
32

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

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


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
34
35
36
37
38
39
40
41
1//公共的   类   类名
2public class HelloJJAVA {
3    // 公共的 静态 无返回值 main方法 数组
4    public static void main(String[] str) {
5
6        /**
7         * 根据用户指定的月份,打印相应的季节
8         */
9
10        int month = 7;
11
12        switch (month) {
13        case 1:
14        case 2:
15        case 3:
16            System.out.println("春");
17            break;
18        case 4:
19        case 5:
20        case 6:
21            System.out.println("夏");
22            break;
23        case 7:
24        case 8:
25        case 9:
26            System.out.println("秋");
27            break;
28        case 10:
29        case 11:
30        case 12:
31            System.out.println("冬");
32            break;
33
34        default:
35            System.out.println("输入不再范围内");
36            break;
37        }
38
39    }
40}
41

这里,输出的是秋

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

3.while

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

  • while
  • do while
  • for

先来看看while


1
2
3
4
5
1while (条件) {
2            // 输出
3
4        }
5

代码来说明


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
1//公共的   类   类名
2public class HelloJJAVA {
3    // 公共的 静态 无返回值 main方法 数组
4    public static void main(String[] str) {
5
6        int a = 5;
7        // 循环5次
8        while (a < 10) {
9            a++;
10            System.out.println("a = " + a);
11        }
12
13    }
14}
15

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

4. do while

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


1
2
3
4
5
6
7
8
9
10
11
12
13
1//公共的   类   类名
2public class HelloJJAVA {
3    // 公共的 静态 无返回值 main方法 数组
4    public static void main(String[] str) {
5
6        int a = 1;
7        do {
8            System.out.println(&quot;a = &quot; + a);
9            a++;
10        } while (a &lt; 10);
11    }
12}
13

这里运行的结果

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

5.for

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


1
2
3
4
5
6
7
8
1
2        /**
3         * 条件表达式 循环条件表达式  循环后的操作表达式
4         */
5        for (int i = 0; i &lt; str.length; i++) {
6            //执行语句
7        }
8

我们再具体的看


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
1//公共的   类   类名
2public class HelloJJAVA {
3    // 公共的 静态 无返回值 main方法 数组
4    public static void main(String[] str) {
5
6        /**
7         * 条件表达式 循环条件表达式 循环后的操作表达式
8         */
9        for (int i = 0; i &lt; 10; i++) {
10            // 执行语句
11            System.out.println(&quot;i = &quot; + i);
12        }
13    }
14}
15

让i去自增十次

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


1
2
3
4
5
6
7
8
9
10
11
12
13
1//公共的   类   类名
2public class HelloJJAVA {
3    // 公共的 静态 无返回值 main方法 数组
4    public static void main(String[] str) {
5
6        int i = 0;
7        while (i &lt; 10) {
8            System.out.println(&quot;i = &quot; + i);
9            i++;
10        }
11    }
12}
13

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

  • 作用域不同

我们还是以小练习为主吧
首先我们看第一个


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
1//公共的   类   类名
2public class HelloJJAVA {
3    // 公共的 静态 无返回值 main方法 数组
4    public static void main(String[] str) {
5
6        /**
7         * 获取1-10的和并且打印
8         */
9        // 用于存储不断变化的和
10        int sum = 0;
11        // 记录累加的值
12        for (int i = 1; i &lt; 11; i++) {
13            sum += i;
14        }
15        System.out.println(&quot;和为:&quot;+sum);
16    }
17}
18

这里打印值

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


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
1//公共的   类   类名
2public class HelloJJAVA {
3    // 公共的 静态 无返回值 main方法 数组
4    public static void main(String[] str) {
5        /**
6         * 打印1-100之间7倍数的个数
7         */
8
9        int temp = 0;
10        for (int i = 1; i &lt;= 100; i++) {
11            if (i % 7 == 0) {
12                temp++;
13            }
14        }
15        System.out.println(&quot;个数为:&quot; + temp);
16    }
17}
18

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

6.语句嵌套

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


1
2
3
4
5
6
7
8
9
10
11
12
1//公共的   类   类名
2public class HelloJJAVA {
3    // 公共的 静态 无返回值 main方法 数组
4    public static void main(String[] str) {
5        for (int i = 0; i &lt; 3; i++) {
6            for (int j = 0; j &lt; 4; j++) {
7                System.out.println(&quot;Hello&quot;);
8            }
9        }
10    }
11}
12

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


1
2
3
4
5
6
7
8
9
10
11
12
13
14
1//公共的   类   类名
2public class HelloJJAVA {
3    // 公共的 静态 无返回值 main方法 数组
4    public static void main(String[] str) {
5        for (int i = 0; i &lt; 4; i++) {
6            for (int j = 0; j &lt; 4; j++) {
7                System.out.print(&quot;*&quot;);
8            }
9            //换行
10            System.out.println();
11        }
12    }
13}
14

看结果

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


1
2
3
4
5
6
7
8
9
10
11
12
13
14
1//公共的   类   类名
2public class HelloJJAVA {
3    // 公共的 静态 无返回值 main方法 数组
4    public static void main(String[] str) {
5        for (int i = 0; i &lt; 10; i++) {
6            for (int j = 0; j &lt; i; j++) {
7                System.out.print(&quot;*&quot;);
8            }
9            // 换行
10            System.out.println();
11        }
12    }
13}
14

得到的结果

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


1
2
3
4
5
6
7
8
9
10
11
12
13
14
1//公共的   类   类名
2public class HelloJJAVA {
3    // 公共的 静态 无返回值 main方法 数组
4    public static void main(String[] str) {
5        for (int i = 0; i &lt; 10; i++) {
6            for (int j = i; j &lt; 10; j++) {
7                System.out.print(&quot;*&quot;);
8            }
9            // 换行
10            System.out.println();
11        }
12    }
13}
14

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


1
2
3
4
5
6
7
8
9
10
11
12
13
1//公共的   类   类名
2public class HelloJJAVA {
3    // 公共的 静态 无返回值 main方法 数组
4    public static void main(String[] str) {
5        for (int i = 0; i &lt; 6; i++) {
6            for (int j = 1; j &lt; i; j++) {
7                System.out.print(&quot; &quot;+j);
8            }
9            System.out.println();
10        }
11    }
12}
13

打印

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


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
1import java.time.Year;
2
3//公共的   类   类名
4public class HelloJJAVA {
5    // 公共的 静态 无返回值 main方法 数组
6    public static void main(String[] str) {
7        /**
8         * 九九乘法表
9         */
10        for (int i = 1; i &lt; 10; i++) {
11            for (int j = 1; j &lt; i + 1; j++) {
12
13                System.out.print(j + &quot;*&quot; + i + &quot; = &quot; + j * i + &quot; &quot;);
14            }
15            System.out.println(&quot; &quot;);
16        }
17    }
18}
19

打印下结果

7.流程控制语句

这个是什么意思呢

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

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


1
2
3
4
5
6
7
8
9
10
11
12
1//公共的   类   类名
2public class HelloJJAVA {
3    // 公共的 静态 无返回值 main方法 数组
4    public static void main(String[] str) {
5        for (int i = 0; i &lt; 3; i++) {
6            System.out.println(&quot;i : &quot; + i);
7            // 跳出循环
8            break;
9        }
10    }
11}
12

运行的结果

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

那我们再来看看continue


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
1//公共的   类   类名
2public class HelloJJAVA {
3    // 公共的 静态 无返回值 main方法 数组
4    public static void main(String[] str) {
5        for (int i = 0; i &lt; 10; i++) {
6
7            if (i % 2 == 1) {
8                // 继续循环
9                continue;
10            }
11            System.out.println(&quot;i : &quot; + i);
12        }
13    }
14}
15

打印的结果

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

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


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
1//公共的   类   类名
2public class HelloJJAVA {
3    // 公共的 静态 无返回值 main方法 数组
4    public static void main(String[] str) {
5        /**
6         * 等腰三角形
7         */
8        for (int i = 0; i &lt; 5; i++) {
9            for (int j = i + 1; j &lt; 5; j++) {
10                System.out.print(&quot; &quot;);
11            }
12            for (int z = 0; z &lt;= i; z++) {
13                System.out.print(&quot;* &quot;);
14            }
15            System.out.println();
16        }
17    }
18}
19

OK,结束

二.函数

函数是什么?

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

格式

修饰符 返回类型 函数名 (参数1…参数2){ 执行语句 return 返回值}
毕竟文笔不好,还是直接用代码表达


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
1//公共的   类   类名
2public class HelloJJAVA {
3    // 公共的 静态 无返回值 main方法 数组
4    public static void main(String[] str) {
5        /**
6         * 求任何数+5的和
7         */
8        System.out.println(getNum(5));
9    }
10
11    private static int getNum(int a) {
12        return a + 5;
13    }
14}
15

这样,我们输出的结果

由此可以看出函数的特点

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

要注意的是

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

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


1
2
3
4
5
6
7
8
9
10
11
12
13
1//公共的   类   类名
2public class HelloJJAVA {
3    // 公共的 静态 无返回值 main方法 数组
4    public static void main(String[] str) {
5
6        System.out.println(getNum());
7    }
8
9    private static int getNum() {
10        return 6 + 5;
11    }
12}
13

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

三.重载

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

  • 概念

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

  • 特点

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

  • 好处

方便阅读,优化程序设计

代码演示


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
1//公共的   类   类名
2public class HelloJJAVA {
3    // 公共的 静态 无返回值 main方法 数组
4    public static void main(String[] str) {
5
6    }
7
8    private static int getNum(int a) {
9        return a;
10    }
11
12    private static int getNum(int a, int b) {
13        return a + b;
14    }
15
16    private static int getNum(int a, int b, int c) {
17        return a + b + c;
18    }
19
20}
21

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

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

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

给TA打赏
共{{data.count}}人
人已打赏
安全技术

Bootstrap 4 Flex(弹性)布局

2021-12-21 16:36:11

安全技术

从零搭建自己的SpringBoot后台框架(二十三)

2022-1-12 12:36:11

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索