为了账号安全,请及时绑定邮箱和手机立即绑定

慕课网JAVA入门第一季笔记整理

标签:
Java
JAVA入门第一季

Java循环跳转语句之 continue

continue 的作用是跳过循环体中剩余的语句执行下一次循环


Java循环跳转语句之 break

在 Java 中,我们可以使用 break 语句退出指定的循环,直接执行循环后面的代码。

例如,使用循环输出 1--10的数值,其中,如果数值大于 2 ,并且为 3 的倍数则停止输出。

实现代码:

public static void main(String[] args) {
    for (int i=1; i<=10;  i++) {
        //判断i>2 且为3的倍数
        if( (i>2) && (i%3==0)) {
            break;//通过break结束循环,执行循环后语句
        }
        System.out.println(i);
    }
    System.out.println("结束啦");
}

运行结果:
——————
1
2
结束啦
——————


Java循环语句之 for

Java 的循环结构中除了 while 和 do...while 外,还有 for 循环,三种循环可以相互替换。

语法:

for(循环变量初始化; 循环条件; 循环变量变化){
    循环操作;
}

执行过程:

<1>、 执行循环变量初始化部分,设置循环的初始状态,此部分在整个循环中只执行一次

<2>、 进行循环条件的判断,如果条件为 true ,则执行循环体内代码;如果为 false ,则直接退出循环

<3>、 执行循环变量变化部分,改变循环变量的值,以便进行下一次条件判断

<4>、 依次重新执行< 2 >、< 3 >、< 4 >,直到退出循环

特点:相比 while 和 do...while 语句结构更加简洁易读
 

需要留心的几个小细节:
图片描述
图片描述
图片描述


Java 循环语句之多重循环

循环体中包含循环语句的结构称为多重循环。三种循环语句可以自身嵌套,也可以相互嵌套,最常见的就是二重循环。在二重循环中,外层循环每执行一次,内层循环要执行一圈。
图片描述
例如:使用 * 打印长方形:
图片描述

实现代码为:

//外层循环控制打印的行数
for (int i=1; i<=3; i++) {
    //内层循环控制每行打印的*号数
    for (int j=1; j<=8; j++) {
        System.out.println("*");
    }
    //每行打印完毕换行
    System.out.println();
}

执行流程:
当 i = 1 时,外层循环条件成立,进入内层循环,开始打印第一行内容。此时, j 从 1 开始,循环 8 次,内层循环结束后换行,实现第一行 8 个 * 的输出。接下来返回外层循环 i 变为 2 ,准备打印下一行,依此类推,直到完成长方形的打印。

========================================

public class HelloWorld {

    public static void main(String[] args) {

        System.out.println("打印直角三角形");

        // 外层循环控制行数
        for (int i = 1; i <= 3; i++) {
            // 内层循环控制每行的*号数
            // 内层循环变量的最大值和外层循环变量的值相等
            for (int j = 1; j <= i; j++) {                
                System.out.print("*");
            }            
            // 每打印完一行后进行换行
            System.out.println();
        }
    }
}

4-15 编程练习

任务
判断一个数(小于10位)的位数。
输入999,则输出 “它是个3位的数!”

  • 方法一

    public class HelloWorld{
    public static void main(String[] args){
        int num = 999;
        int count = 1000000000;
        for(int i=10; i>0; i--){
            if(num/count >= 1){
               System.out.println("它是个" + i + "位的数!");
               break;
            }
        count = count/10;
        }
    
    }
    }
  • 方法二
    public class HelloWorld{
    public static void main(String[] args){
        int num = 999;
        int count = 0;
        for(int i=1; i<10; i++){
            if(num > 0){
                num = num/10;
                count++;
            }else{
                System.out.println("它是个" + count + "位的数!");
                  break;
              }           
        } 
    }
    }
  • 方法三
    public class HelloWorld{
    public static void main(String[] args){
        int num = 999;
        int count = 0;
        do{
            num = num/10;
            count++;
        }while(num>0);
        System.out.print("它是个" + count + "位的数!");
    }
    }
  • 方法四
    public class HelloWorld{
    public static void main(String[] args){
        int num = 999;
        int count = 0;
        while(num>0){
            num=num/10;
            count++;
        }
        System.out.print("它是个" + count + "位的数!");
    }
    }
  • 方法五
    public class HelloWorld{
    public static void main(String[] args){
        int num = 999;
        for(int i=1, count=0; i<10; i++,count++){
            if(num > 0){
                num = num/10;
            }else{
                System.out.println("它是个" + count + "位的数!");
                break;
           }
        } 
    }
    }

eclipse快捷键:syso ==> System.out.println("");


5-13 编程练习优化

import java.util.Scanner;

Scanner input = new Scanner(System.in);

 //获取用户输入的整数并保存在变量中
int num = input.nextInt();

什么是数组

数组可以理解为是一个巨大的“盒子”,里面可以按顺序存放多个类型相同的数据,比如可以定义 int 型的数组 scores 存储 4 名学生的成绩

图片描述

数组中的元素都可以通过下标来访问,下标从 0 开始。


如何使用Java中的数组

Java 中操作数组只需要四个步骤:
图片描述
图片描述
图片描述
图片描述

========================================

public class HelloWorld {
    public static void main(String[] args) {

        // 定义一个长度为5的字符串数组,保存考试科目信息
        String[] subjects = new String[5];

        // 分别为数组中的元素赋值
        subjects[0] = "Oracle";
        subjects[1] = "PHP";
        subjects[2] = "Linux";
        subjects[3] = "Java";
        subjects[4] = "HTML";

        System.out.println("数组中第4个科目为:" + subjects[3]);
    }
}

使用循环操作 Java 中的数组

实际开发中我们经常使用循环控制数组成员的操作。如:

图片描述

其中, 数组名.length 用于获取数组的长度

需要注意的“小毛病”:

1、 数组下标从 0 开始。因此 scores3 ,表示数组中的第 4 个元素,而并非第 3 个元素

2、数组下标的范围是 0 至 数组长度-1 ,如果越界访问,就会报错。如:

图片描述

上面错误信息的意思是数组下标超过范围,即数组访问越界。

在上面的代码中创建一个长度为 2 的数组,因此数组下标范围是 0 到 1 ,而程序中下标出现了 2 ,即 scores2 ,超过了范围,造成数组访问越界。

========================================

public class HelloWorld {
    public static void main(String[] args) {

        // 定义一个长度为 3 的字符串数组,并赋值初始值
        String[] hobbys = { "sports", "game", "movie" };
        System.out.println("循环输出数组中元素的值:");

        // 使用循环遍历数组中的元素
        for(int i=0; i<hobbys.length; i++) {
            System.out.println(hobbys[i]);
        }

    }
}

6-6 编程练习

任务
1、 定义一个整型数组,并赋初值 61, 23, 4, 74, 13, 148, 20
2、 定义变量分别保存最大值、最小值、累加值和平均值,并假设数组中的第一个元素既为最大值又为最小值
3、 使用 for 循环遍历数组中的元素,分别与假定的最大值和最小值比较。如果比假定的最大值要大,则替换当前的最大值;如果比假定的最小值要小,则替换当前的最小值
4、 循环执行过程中对数组中的元素进行累加求和
5、 循环结束根据累加值计算平均值,并打印输出相关内容

public class HelloWorld {

    public static void main(String[] args) {

        // 定义一个整型数组,并赋初值
        int[] nums = new int[] { 61, 23, 4, 74, 13, 148, 20 };

        // 假定最大值为数组中的第一个元素
        int max = nums[0]; 
        // 假定最小值为数组中的第一个元素
        int min = nums[0]; 
        // 累加值
        double sum = 0;
        // 平均值
        double avg = 0;

        // 循环遍历数组中的元素
        for (int i = 0; i < nums.length; i++) { 

        // 如果当前值大于max,则替换max的值
            if(nums[i]>max) {
                max = nums[i];
            }

        // 如果当前值小于min,则替换min的值
            if(nums[i]<min) {
                min = nums[i];
            }

        // 累加求和
            sum += nums[i];
        }
        avg = sum / nums.length;

        // 求平均值

        System.out.println("数组中的最大值:" + max);
        System.out.println("数组中的最小值:" + min);
        System.out.println("数组中的平均值:" + avg);
    }
}

使用 Arrays 类操作 Java 中的数组

Arrays 类是 Java 中提供的一个工具类,在 java.util 包中。该类中包含了一些方法用来直接操作数组,比如可直接实现数组的排序、搜索等。

Arrays 中常用的方法:

图片描述

图片描述

========================================

//导入Arrays类
import java.util.Arrays;

public class HelloWorld {
    public static void main(String[] args) {

        // 定义一个字符串数组
        String[] hobbies = { "sports", "game", "movie" };

        // 使用Arrays类的sort()方法对数组进行排序
        Arrays.sort(hobbies);

        // 使用Arrays类的toString()方法将数组转换为字符串并输出
        System.out.println(Arrays.toString(hobbies));
    }
}

使用 foreach 操作数组

foreach 并不是 Java 中的关键字,是 for 语句的特殊简化版本,在遍历数组、集合时, foreach 更简单便捷。从英文字面意思理解 foreach 也就是“ for 每一个”的意思,那么到底怎么使用 foreach 语句呢?

语法:

for(元素类型 元素变量 : 遍历循环对象) {
    执行代码;
}

图片描述

========================================

import java.util.Arrays;

public class HelloWorld {

    public static void main(String[] args) {

        // 定义一个整型数组,保存成绩信息
        int[] scores = { 89, 72, 64, 58, 93 };

        // 对Arrays类对数组进行排序
        Arrays.sort(scores);

        // 使用foreach遍历输出数组中的元素
        for (int score : scores) {
            System.out.println(score);
        }
    }
}

如何定义 Java 中的方法

所谓方法,就是用来解决一类问题的代码的有序组合,是一个功能模块。

一般情况下,定义一个方法的语法是:

访问修饰符 返回值 方法名(参数列表) {
    方法体
}

其中:

1、 访问修饰符:方法允许被访问的权限范围, 可以是 public、protected、private 甚至可以省略 ,其中 public 表示该方法可以被其他任何代码调用,其他几种修饰符的使用在后面章节中会详细讲解滴

2、 返回值类型:方法返回值的类型,如果方法不返回任何值,则返回值类型指定为 void ;如果方法具有返回值,则需要指定返回值的类型,并且在方法体中使用 return 语句返回值

3、 方法名:定义的方法的名字,必须使用合法的标识符

4、 参数列表:传递给方法的参数列表,参数可以有多个,多个参数间以逗号隔开,每个参数由参数类型和参数名组成,以空格隔开
根据方法是否带参、是否带返回值,可将方法分为四类:
Ø 无参无返回值方法
Ø 无参带返回值方法
Ø 带参无返回值方法
Ø 带参带返回值方法

========================================

public class HelloWorld {

    //定义了一个方法名为 print 的方法,实现输出信息功能
    public void print() {
        System.out.println("Hello World");
    }

    public static void main(String[] args){

        //在 main 方法中调用 print 方法
        HelloWorld test=new HelloWorld();
        test.print();
    }
}

Java 中无参无返回值方法的使用

如果方法不包含参数,且没有返回值,我们称为无参无返回值的方法。

方法的使用分两步:

图片描述

图片描述

========================================

public class HelloWorld {

    public static void main(String[] args) {
        // 创建对象,对象名为hello
        HelloWorld hello = new HelloWorld();

        // 调用方法
        hello.showMyLove();
    }

    /*
     * 定义无参无返回值的方法
     */
    public void showMyLove() {
        System.out.println("我爱慕课网!");
    }
}

Java 中无参带返回值方法的使用

如果方法不包含参数,但有返回值,我们称为无参带返回值的方法。

例如:下面的代码,定义了一个方法名为 calSum ,无参数,但返回值为 int 类型的方法,执行的操作为计算两数之和,并返回结果

在 calSum( ) 方法中,返回值类型为 int 类型,因此在方法体中必须使用 return 返回一个整数值。
图片描述

调用带返回值的方法时需要注意,由于方法执行后会返回一个结果,因此在调用带返回值方法时一般都会接收其返回值并进行处理。如:
图片描述

+++++++++++++++++++++++++++
图片描述

========================================

public class HelloWorld {

    public static void main(String[] args) {

        // 创建名为hello的对象
        HelloWorld hello = new HelloWorld();

        // 调用hello对象的calcAvg()方法,并将返回值保存在变量avg中
        double avg = hello.calcAvg();

        System.out.println("平均成绩为:" + avg);
    }

    // 定义一个返回值为double类型的方法
    public double calcAvg() {

        double java = 92.5;
        double php = 83.0;
        double avg = (java + php) / 2; // 计算平均值

        // 使用return返回值
        return avg;

    }
}

7-4 编程练习

功能:输出学生年龄的最大值

定义一个无参的方法,返回值为年龄的最大值

参考步骤:
1、定义一个整形数组 ages ,保存学生年龄,数组元素依次为 18 ,23 ,21 ,19 ,25 ,29 ,17
2、定义一个整形变量 max ,保存学生最大年龄,初始时假定数组中的第一个元素为最大值
3、使用 for 循环遍历数组中的元素,并与假定的最大值比较,如果比假定的最大值要大,则替换当前的最大值
4、使用 return 返回最大值

public class HelloWorld {

    //完成 main 方法
    public static void main(String[] args) {

        // 创建对象,对象名为hello
        HelloWorld hello = new HelloWorld(); 

        // 调用方法并将返回值保存在变量中
        int maxScore = hello.getMaxAge(); 

        // 输出最大年龄
        System.out.println("最大年龄为:" + maxScore); 
    }

    public int getMaxAge() {
        int[] ages = {18, 23, 21, 19, 25, 29, 17};
        int max = ages[0];
        for(int i=0; i<ages.length; i++) {
            if(max < ages[i]){
                max = ages[i];
            }
        }
        return max;
    }
}

Java 中带参无返回值方法的使用

有时方法的执行需要依赖于某些条件,换句话说,要想通过方法完成特定的功能,需要为其提供额外的信息才行。

例如,现实生活中电饭锅可以实现“煮饭”的功能,但前提是我们必须提供食材,如果我们什么都不提供,那就真是的“巧妇难为无米之炊”了。

我们可以通过在方法中加入参数列表接收外部传入的数据信息,参数可以是任意的基本类型数据或引用类型数据。
图片描述

很多时候,我们把定义方法时的参数称为形参,目的是用来定义方法需要传入的参数的个数和类型;把调用方法时的参数称为实参,是传递给方法真正被处理的值。
图片描述

========================================

public class HelloWorld {
    public static void main(String[] args) {

        // 创建对象,对象名为hello
        HelloWorld hello = new HelloWorld();

        // 调用方法,传入两门课程的成绩
        hello.calcAvg(94, 81);
    }

    /*
     * 功能:计算两门课程考试成绩的平均分并输出平均分
     * 定义一个包含两个参数的方法,用来传入两门课程的成绩
     */

    public void calcAvg(double a, double b) {
        double avg = (a+b)/2;
        System.out.println("平均分:"+avg);
    }

}

Java 中带参带返回值方法的使用

如果方法既包含参数,又带有返回值,我们称为带参带返回值的方法。
图片描述

========================================

import java.util.Arrays;

public class HelloWorld {
    public static void main(String[] args) {
        HelloWorld hello = new HelloWorld();
        int[] scores={79,52,98,81};

        //调用方法,传入成绩数组,并获取成绩的个数
        int count= hello.sort(scores);

        System.out.println("共有"+count+"个成绩信息!");
    }

    /*
     * 功能:将考试成绩排序并输出,返回成绩的个数
     * 定义一个包含整型数组参数的方法,传入成绩数组
     * 使用Arrays类对成绩数组进行排序并输出
     * 方法执行后返回数组中元素的个数
     */
    public int sort(int scores[]){
        Arrays.sort(scores);
        System.out.println(Arrays.toString(scores));

        //返回数组中元素的个数
        return scores.length;
    }
}

Java 中方法的重载
<pre>

问: 什么是方法的重载呢?

答: 如果同一个类中包含了两个或两个以上
方法名相同、方法参数的个数、顺序或类型不同的方法,
则称为方法的重载,也可称该方法被重载了。
如下所示 4 个方法名称都为 show ,
但方法的参数有所不同,因此都属于方法的重载。

</pre>
图片描述

<pre>

问: 如何区分调用的是哪个重载方法呢?

答: 当调用被重载的方法时,
Java 会根据参数的个数和类型来判断应该调用哪个重载方法,
参数完全匹配的方法将被执行。如:

</pre>
图片描述

判断方法重载的依据:

1、 必须是在同一个类中

2、 方法名相同

3、 方法参数的个数、顺序或类型不同

4、 与方法的修饰符或返回值没有关系

========================================

public class HelloWorld {
    public static void main(String[] args) {

        // 创建对象
        HelloWorld hello = new HelloWorld();

        // 调用无参的方法
        hello.print();

        // 调用带有一个字符串参数的方法
        hello.print("imooc");

        // 调用带有一个整型参数的方法
        hello.print(18);
    }

    public void print() {
        System.out.println("无参的print方法");
    }

    public void print(String name) {
        System.out.println("带有一个字符串参数的print方法,参数值为:" + name);
    }

    public void print(int age) {
        System.out.println("带有一个整型参数的print方法,参数值为:" + age);
    }
}

7-9 编程练习

通过 (int)(Math.random() * 100) 生成 100 以内的随机数

注:Math 类是用于进行算术操作的类,Math.random() 生成 0--1 的浮点数。 关于该类的其他应用在后面章节会有详细介绍,先熟悉随机数方法的使用~~

运行效果为: [ 2 , 52 , 8 , 26 , 66 , 32 , 98 , 0 ]

//导入java.util.Arrays;
import java.util.Arrays;

public class HelloWorld {
    public static void main(String[] args) {

         // 创建对象,对象名为hello
        HelloWorld hello = new HelloWorld();

        // 调用方法并将返回值保存在变量中
        int[] nums = hello.getArray(8);

        // 将数组转换为字符串并输出
        System.out.println(Arrays.toString(nums)); 
    }

    /*
     * 功能:创建指定长度的int型数组,并生成100以内随机数为数组中的每个元素赋值
     * 定义一个带参带返回值的方法,通过参数传入数组的长度,返回赋值后的数组
     */
    public int[] getArray(int length) {
        // 定义指定长度的整型数组
        int[] nums = new int[length];

        // 循环遍历数组赋值
        for (int i=0; i<nums.length; i++) {

            nums[i] = (int)(Math.random() * 100);
            // 产生一个100以内的随机数,并赋值给数组的每个成员
        }
        return nums; // 返回赋值后的数组
    }
}

点击查看更多内容
3人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
Web前端工程师
手记
粉丝
22
获赞与收藏
24

关注作者,订阅最新文章

阅读免费教程

感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消