【逆天OP懒狗的JAVA自学笔记--5.判断和循环】第二阶段始篇


前言

本文为流程控制语句的使用教程,并讲述接下来JAVA的学习方式有哪些改动。
在这里插入图片描述
在这里插入图片描述


一、流程控制语句

在这里插入图片描述
三种流程控制分类
在这里插入图片描述


1.顺序结构(最简单)

在这里插入图片描述


在这里插入图片描述

代码如下(示例):

public class Test {
	public static void main(String[] args){
		   System.out.println("努力做主人喜欢的事");
		     System.out.println("大小姐驾到!统统闪开!");
		       System.out.println("凛冬已至,故乡的梅花开了吗");
		         System.out.println("心怀不惧,方能翱翔于天际");
       }
}

运行结果:
在这里插入图片描述


小结
顺序执行时JAVA的默认程序运行方式。


2.分支结构

在这里插入图片描述


两种分支结构–if、switch
在这里插入图片描述


2.1 if 语句

基础概念
在这里插入图片描述


2.1.1 if语句的三种格式

①第一种:在这里插入图片描述


练习一
在这里插入图片描述

代码如下:

package com.itheima.demo2;

import java.util.Scanner;

public class ifDemo1 {
    public static void main(String[] args) {
        //需求:键盘录入女婿酒量,如果大于 2 斤,老丈人给出回应,反之不回应

        //if格式
        //if(关系表达式){
        //语句体;
        // }

        //分析:
        //1.键盘录入女婿的酒量
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入女婿的酒量");
        int wine = sc.nextInt();
        //2.对酒量进行判断
        if(wine > 2){
            System.out.println("小伙子,不错哟!!");
        }
    }
}

运行结果:
若满足if条件,则执行语句体在这里插入图片描述
若不满足if条件,则不执行语句体
在这里插入图片描述


练习二—— if 对值的判断

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

代码如下:

package com.itheima.test;

public class Test1 {
    public static void main(String[] args) {
        //小红:如果你这次考试全班第一,我就做你女朋友。

        //分析:
        //1.定义变量记录小明的名次
        int ranking = 2;
        //2.对小明的名次进行判断。
        if(ranking == 1){
            System.out.println("小红成为了小明的女朋友");
        }
    }
}

运行结果:
在这里插入图片描述
小明没有考到第一,遗憾错付。


练习三——自动驾驶
在这里插入图片描述

代码如下:

package com.itheima.test;

public class Test2 {
    public static void main(String[] args) {
        //汽车无人驾驶会涉及到大量的判断
        //当汽车行驶的时候遇到了红绿灯,就会进行判断
        //如果红灯亮,就停止
        //如果黄灯亮,就减速
        //如果绿灯亮,就行驶


        //1.定义三个变量表示灯的状态
        //true 亮  false 灭
        boolean isLightGreen = false;
        boolean isLightYellow = false;
        boolean isLightRed = true;

        //2.判断
        //红灯亮,就停止
        //黄灯亮,就减速
        //绿灯亮,就行驶
        if(isLightGreen){
            System.out.println("GoGoGo!!!");
        }


        if(isLightYellow){
            System.out.println("slow!!!");
        }

        if(isLightRed){
            System.out.println("stop!!!");
        }
    }

}

运行结果:
在这里插入图片描述


②第二种:
在这里插入图片描述
if 和 else 里的语句体具有异或性,二者只有其一会被执行。


练习一
在这里插入图片描述

代码如下:

package com.itheima.test;

import java.util.Scanner;

public class Test3 {
    public static void main(String[] args) {
        /*需求:键盘录入一个整数,表示身上的钱。
        如果大于等于100块,就是网红餐厅。
        否则,就吃经济实惠的沙县小吃。
*/
        //分析:
        //1.键盘录入一个整数,表示身上的钱。
        Scanner sc = new Scanner(System.in);
        System.out.println("请录入身上的钱");
        int money = sc.nextInt();
        //2.对钱进行判断(二选一)
        if(money >= 100){
            System.out.println("吃网红餐厅");
        } else{
            System.out.println("吃经济实惠的沙县小吃");
        }



    }
}

运行结果:
在这里插入图片描述


练习二——斯坦福JAVA真题
在这里插入图片描述

代码如下:

package com.itheima.test;

import java.util.Scanner;

public class Test4 {
    public static void main(String[] args) {
        /*在实际开发中,如果要根据两种不同的情况来执行不同的代码,就需要用到if的第二种格式。
        需求:
        假设,用户在超市实际购买,商品总价为:600元。
        键盘录入一个整数表示用户实际支付的钱。
        如果付款大于等于600,表示付款成功。否则付款失败。
*/


        //分析:
        //1.键盘录入一个整数表示用户实际支付的钱。
        Scanner sc = new Scanner(System.in);
        System.out.println("录入一个整数表示实际支付的钱");
        int money = sc.nextInt();
        //2.判断
        if(money >= 600){
            System.out.println("付款成功");
        }else{
            System.out.println("付款失败");
        }


    }
}

运行结果:
在这里插入图片描述
在这里插入图片描述


练习三——斯坦福JAVA真题
在这里插入图片描述

代码如下:

package com.itheima.test;


import java.util.Scanner;

public class Test5 {
    public static void main(String[] args) {
        /*在实际开发中,电影院选座也会使用到if判断。
        假设某影院售卖了100张票,票的序号为1~100。
        其中奇数票号坐左侧,偶数票号坐右侧。
        键盘录入一个整数表示电影票的票号。
        根据不同情况,给出不同的提示:
        如果票号为奇数,那么打印坐左边
        如果票号为偶数,那么打印坐右边。*/


        //分析:
        //1.键盘录入一个整数表示电影票的票号。
        Scanner sc = new Scanner(System.in);
        System.out.println("请录入一个票号");
        int ticket = sc.nextInt();
        //只有当ticket在0 ~ 100之间,才是真实有效的票
        //if的嵌套
        if(ticket >= 0 && ticket <= 100){
            //2.判断票号是奇数还是偶数
            if(ticket % 2 == 1){
                System.out.println("坐左边");
            }else{
                System.out.println("坐右边");
            }
        }
			//添加票号非法时的提示。这句属于最外层if的语句体
				System.out.println("捏吗,假票!");

    }
}

运行结果:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


①第三种:
在这里插入图片描述
流程式图解:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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


前两种 if 回顾
在这里插入图片描述


练习一
在这里插入图片描述

代码如下:

package com.itheima.test;


import java.util.Scanner;

public class Test6 {
    public static void main(String[] args) {
        /*
        根据不同的分数送不同的礼物。
        如果是95~100分,送自行车一辆
        如果是90~94分,游乐场玩一天
        如果是80~89分,送变形金刚一个。
        如果是80分,揍一顿。*/


        //分析:
        //1.键盘录入小明的考试成绩
        Scanner sc = new Scanner(System.in);
        System.out.println("请录入一个整数表示小明的成绩");
        int score = sc.nextInt();

        //对异常数据进行判断校验
        //0~100合理数据
        if(score >0 && score <= 100){
            //2.根据不同的考试成绩,给出不同的奖励
            if(score >= 95 && score <= 100){
                System.out.println("送自行车一辆");
            }else if(score >= 90 && score <= 94){
                System.out.println("游乐场玩一天");
            }else if(score >= 80 && score <= 89){
                System.out.println("送变形金刚一个");
            }else{
                System.out.println("揍一顿");
            }
        }else{
            System.out.println("当前录入的成绩不合法");
        }


    }
}

运行结果:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


练习二——斯坦福JAVA真题
在这里插入图片描述

代码如下:

package com.itheima.test;

import java.util.Scanner;

public class Test7 {
    public static void main(String[] args) {
        /*在实际开发中,多种情况判断时,会用到if的第三种格式:
        需求:
            商场都会有VIP的会员制,根据不同的会员会有不同的折扣。
            假设商品总价为1000。
            键盘录入会员级别,并计算出实际支付的钱。
            会员1级:打9折。
            会员2级:打8折。
            会员3级:打7折。
            非会员:不打折,要打也是打骨折。*/


        //分析:
        //1.定义变量记录总价
        int price = 1000;
        //2.键盘录入会员的级别
        Scanner sc = new Scanner(System.in);
        System.out.println("请录入会员的级别");
        int vip = sc.nextInt();
        //3.根据级别来计算实际要支付的钱
        if(vip == 1){
            System.out.println("实际支付的钱为" + (price * 0.9));
        }else if(vip == 2){
            System.out.println("实际支付的钱为" + (price * 0.8));
        }else if(vip == 3){
            System.out.println("实际支付的钱为" + (price * 0.7));
        }else{
            System.out.println("实际支付的钱为" + price);
        }
    }
}

运行结果:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


练习三
在这里插入图片描述
在这里插入图片描述

代码如下:

package com.itheima.test;

public class Test8 {
    public static void main(String[] args) {
        //汽车无人驾驶会涉及到大量的判断
        //当汽车行驶的时候遇到了红绿灯,就会进行判断
        //如果红灯亮,就停止
        //如果黄灯亮,就减速
        //如果绿灯亮,就行驶

        //1.定义三个变量表示灯的状态
        //true 亮  false 灭
        boolean isLightGreen = true;
        boolean isLightYellow = false;
        boolean isLightRed = false;

        //2.判断
        //红灯亮,就停止
        //黄灯亮,就减速
        //绿灯亮,就行驶
        if(isLightGreen){
            System.out.println("GoGoGo!!!");
        }else  if(isLightYellow){
            System.out.println("slow!!!");
        }else if(isLightRed){
            System.out.println("stop!!!");
        }
    }
}

运行结果:
在这里插入图片描述

小结:
if 的第三种结构每个if 或else if 或 else 里的语句体也和第二种一样具有异或性,只会执行其中之一。


2.1.2 if 的注意事项

① 大括号的开头可以另起一行书写,但是建议写在第一行的末尾


    if(关系表达式){              
        语句体;
     }

    或:
    
     if(关系表达式)
     {
        语句体;
     }
--------------------------------------------------------------------------------
     JAVA的规范写法:
        
       if(number >= 10){
           System.out.println("你好");
     }

     JAVA的不规范写法:
     
	  if(number >= 10)
	 {
           System.out.println("你好");
	 }
 

2.在语句体中,如果只有一句代码,大括号可以省略不写。个人建议,大括号还是不要省略

单句代码可省略大括号,例如:

 if(number >= 10)
           System.out.println("number大于等于10");

这样代码也能运行,运行结果为:
在这里插入图片描述


但也有特殊情况,例如:

if(number >= 10)
           int a = 100; //1.定义变量a 2.给变量a赋值为100

此时程序报错在这里插入图片描述
因为int a =10;等同于int a;a = 10;,算作两句操作代码。
所以还是尽量不要省略大括号为好。


3.如果对一个布尔类型的变量进行判断,不要用==号,直接把变量写在小括号即可

正确写法如下:

 boolean flag = true;
        if(flag){
            System.out.println("flag的值为true");
        }

运行结果为:
在这里插入图片描述


错误写法如下:

boolean flag = true;
        if(flag == true){
            System.out.println("flag的值为true");
        }

这种写法极为繁琐,且容易漏写成另一种错误写法:

boolean flag = true;
        if(flag = true){
            System.out.println("flag的值为true");
        }

这里if后的表达式写成了赋值表达式,所以无论boolean 类型的flag初始赋值是true还是false,最终都会被if后的赋值操作覆盖,然后执行if内的语句块。
而第一种错误写法是没有必要地添加了 == 符号,if后的表达式里若是布尔类型地变量名,它会默认是true时执行if内地语句块。


2.2 switch 语句

在这里插入图片描述


基础概念
在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


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


在这里插入图片描述


switch 流程图
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

在这里插入图片描述

在这里插入图片描述


练习一 ——想吃的面

代码如下:

package com.itheima.switchdemo;

public class SwitchDemo1 {
    public static void main(String[] args) {
        //兰州拉面、武汉热干面、北京炸酱面、陕西油泼面

        //1.定义变量记录我心里想吃的面
        String noodles = "海鲜龙虾面";

        //2.拿着这个面利用switch跟四种面条匹配
        switch (noodles){
            case "兰州拉面":
                System.out.println("吃兰州拉面");
                break;
            case "武汉热干面":
                System.out.println("吃武汉热干面");
                break;
            case "北京炸酱面":
                System.out.println("吃北京炸酱面");
                break;
            case "陕西油泼面":
                System.out.println("吃陕西油泼面");
                break;
            default:
                System.out.println("吃方便面");
                break;
        }
    }
}

运行截图:
在这里插入图片描述


练习二——运动计划

在这里插入图片描述

代码如下:

package com.itheima.test;

import java.util.Scanner;

public class Test9 {
    public static void main(String[] args) {
        /*需求:键盘录入星期数,显示今天的减肥活动。
        周一:跑步
        周二:游泳
        周三:慢走
        周四:动感单车
        周五:拳击
        周六:爬山
        周日:好好吃一顿*/

        //分析:
        //1.键盘录入星期数
        Scanner sc = new Scanner(System.in);
        System.out.println("请录入星期");
        int week = sc.nextInt();
        //2.利用switch对星期进行匹配
        switch (week){
            case 1:
                System.out.println("跑步");
                break;
            case 2:
                System.out.println("游泳");
                break;
            case 3:
                System.out.println("慢走");
                break;
            case 4:
                System.out.println("动感单车");
                break;
            case 5:
                System.out.println("拳击");
                break;
            case 6:
                System.out.println("爬山");
                break;
            case 7:
                System.out.println("好好吃一顿");
                break;
            default:
                System.out.println("没有这个星期");
                break;
        }




    }
}

运行结果:
在这里插入图片描述


2.2.1switch 的扩展知识

在这里插入图片描述


①default的位置和省略
1.位置 :default不一定是写在最下面的,我们可以写在任意位置。只不过习惯会写在最下面
2.省略 : default可以省略,语法不会有问题,但是不建议省略。

代码如下:

package com.itheima.switchdemo;

/*
    default的位置和省略  
*/
public class SwitchDemo2 {
    public static void main(String[] args) {
        int number = 100;
        switch (number){
            case 1:
                System.out.println("number的值为1");
                break;
            case 10:
                System.out.println("number的值为10");
                break;
            case 20:
                System.out.println("number的值为20");
                break;
            default:
                System.out.println("number的值不是1,10或者20");
                break;
        }
    }
}

运行结果:
在这里插入图片描述
若将这里的default部分省略,那么运行结果是:
在这里插入图片描述
结果是啥也没有。


②case穿透

就是语句体中没有写break导致的情况。


  • 执行流程:
  •   首先还是会拿着小括号中表达式的值跟下面每一个case进行匹配。
    
  •   如果匹配上了,就会执行对应的语句体,如果此时发现了break,那么结束整个switch语句。
    
  •   如果没有发现break,那么程序会继续执行下一个case的语句体,一直遇到break或者右大括号为止。
    

代码如下:

package com.itheima.switchdemo;


/* 
     case穿透
*/
public class SwitchDemo3 {
    public static void main(String[] args) {
        int number = 10;
        switch (number){
            case 1:
                System.out.println("number的值为1");
                break;
            case 10:
                System.out.println("number的值为10");
                // break;
            case 20:
                System.out.println("number的值为20");
                break;
            default:
                System.out.println("number的值不是1,10或者20");
                // break;
        }
    }
}

运行结果:
在这里插入图片描述


使用场景:
如果多个case的语句体重复了,那么我们考虑利用case穿透去简化代码。


③ switch 新特性
JDK12推出switch的结构简化

代码如下:

package com.itheima.switchdemo;

/*
    switch新特性
        JDK12
*/

public class SwitchDemo4 {
    public static void main(String[] args) {
        //需求:
        // 1 2 3  一 二  三
        int number = 1;
        switch (number){
            case 1:
                System.out.println("一");
                break;
            case 2:
                System.out.println("二");
                break;
            case 3:
                System.out.println("三");
                break;
            default:
                System.out.println("没有这种选项");
                break;
        }
    }
}

这是我们刚学习过的switch结构。
在JDK12推出了switch新特性,可以这样写:

 int number = 10;
        switch (number) {
            case 1 -> {
            System.out.println("一");
 			}
            case 2 -> {
            System.out.println("二");
            }
            case 3 -> {
            System.out.println("三");
            }
            default -> {
            System.out.println("没有这种选项");
            }
        }

若case里的语句体只有一句,还可以更加精简,代码如下:

 int number = 10;
        switch (number) {
            case 1 -> System.out.println("一");
            case 2 -> System.out.println("二");
            case 3 -> System.out.println("三");
            default -> System.out.println("没有这种选项");
        }

这种精简形式下,还规避了case穿透的情况。

若case语句体里得到的结果是一个值,还能这样使用:

  int number = 10;
        变量 = switch (number) {
            case 1 -> System.out.println("一");
            case 2 -> System.out.println("二");
            case 3 -> System.out.println("三");
            default -> System.out.println("没有这种选项");
        }

把case里的值赋给一个变量


④ switch 和 if 第三种格式各自的使用场景

  • if的第三种格式:一般用于对范围的判断。
  • switch:把有限个数据一一列举出来,让我们任选其一。

代码如下:

package com.itheima.switchdemo;

/*
    switch和if第三种格式各自的使用场景
*/

public class SwitchDemo5 {
    public static void main(String[] args) {
        int score = 100;
        if(score >= 90 && score <= 100){
            System.out.println("送自行车");
        }
    }
}

运行结果:
在这里插入图片描述

例如之前的星期匹配:

  //2.利用switch对星期进行匹配
        switch (week){
            case 1:
                System.out.println("跑步");
                break;
            case 2:
                System.out.println("游泳");
                break;
            case 3:
                System.out.println("慢走");
                break;
            case 4:
                System.out.println("动感单车");
                break;
            case 5:
                System.out.println("拳击");
                break;
            case 6:
                System.out.println("爬山");
                break;
            case 7:
                System.out.println("好好吃一顿");
                break;
            default:
                System.out.println("没有这个星期");
                break;
        }

若换成if,则结构臃肿混乱,而用switch的新特性,可以极简代码外观。

if形式:

		if(week = 1){
            System.out.println("跑步");
        } else if(week = 2{
            System.out.println("游泳");
        }else if(week = 3{
            System.out.println("慢走");
        }
        ......
        else{
            System.out.println("没有这个星期");
        }

switch形式:

switch (week) {
 			case 1 -> System.out.println("跑步");
            case 2 -> System.out.println("游泳");
            case 3 -> System.out.println("慢走");
            ......
            default -> System.out.println("没有这个星期");

具体的使用,还需要大量练习才能做出好的选择。


练习一 —— 休息日和工作日(case穿透)
在这里插入图片描述

代码如下:

package com.itheima.test;

import java.util.Scanner;

public class Test10 {
    public static void main(String[] args) {
         /* 需求:键盘录入星期数,输出工作日、休息日。
        (1-5) 工作日,(6-7)休息日。*/


        //分析:
        //1.键盘录入星期数
        Scanner sc = new Scanner(System.in);
        System.out.println("请录入一个整数表示星期");
        int week = sc.nextInt();
        //2.利用switch语句来进行选择
        switch (week){
            case 1,2,3,4,5 ->  System.out.println("工作日");
            case 6,7 ->  System.out.println("休息日");
            default -> System.out.println("没有这个星期");
        }


    }
}

运行结果:
在这里插入图片描述


当case里的语句体重复时,就可以使用穿透,把原本赘余的语句结构简化。
下面是简化过程:

最初结构:

 switch (week){
            case 1:
                System.out.println("工作日");
                break;
            case 2:
                System.out.println("工作日");
                break;
            case 3:
                System.out.println("工作日");
                break;
            case 4:
                System.out.println("工作日");
                break;
            case 5:
                System.out.println("工作日");
                break;
            case 6:
                System.out.println("休息日");
                break;
            case 7:
                System.out.println("休息日");
                break;
            default:
                System.out.println("没有这个星期");
                break;
        }

case穿透简化:

switch (week){
            case 1:             
            case 2:
            case 3:
            case 4:
            case 5:
                System.out.println("工作日");
                break;
            case 6:
            case 7:
                System.out.println("休息日");
                break;
            default:
                System.out.println("没有这个星期");
                break;
        }

再简化:

switch (week){
            case 1,2,3,4,5:             
                System.out.println("工作日");
                break;
            case 6,7:
                System.out.println("休息日");
                break;
            default:
                System.out.println("没有这个星期");
                break;
        }

JDK12新特性简化

 switch (week){
            case 1,2,3,4,5 ->  System.out.println("工作日");
            case 6,7 ->  System.out.println("休息日");
            default -> System.out.println("没有这个星期");
        }

爽晕了~~~


练习二 —— 用户选择
在这里插入图片描述

代码如下:

package com.itheima.test;

import java.util.Scanner;

public class Test11 {
    public static void main(String[] args) {
       /* 在实际开发中,如果我们需要在多种情况下选择其中一个,就可以使用switch语句。
        当我们拨打了某些服务电话时,一般都会有按键选择。
        假设现在我们拨打了一个机票预定电话。
        电话中语音提示:
        1机票查询
        2机票预订
        3机票改签
        4退出服务
        其他按键也是退出服务。请使用swtich模拟该业务逻辑。*/


        //分析:
        //1.键盘录入一个整数表示我们的选择
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入您的选择");
        int choose = sc.nextInt();
        //2.根据选择执行不同的代码
        switch (choose) {
            case 1 -> System.out.println("机票查询");
            case 2 -> System.out.println("机票预订");
            case 3 -> System.out.println("机票改签");
            //case 4 -> System.out.println("退出服务");
            default -> System.out.println("退出服务");
        }

    }
}

这里也用到穿透简化,
用 ->取代 : 和语句体末尾的break;

运行结果:
在这里插入图片描述
在这里插入图片描述


3.循环结构

在这里插入图片描述


基础概念
在这里插入图片描述
循环种类
在这里插入图片描述


3.1 for 循环

基础概念
在这里插入图片描述


执行流程
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


i 就是整个循环体的控制者
在这里插入图片描述
首先初始化循环控制对象
在这里插入图片描述

每次执行for循环里的语句体都要进行判断
在这里插入图片描述
符合判断条件,执行语句体
在这里插入图片描述
控制对象进行自增
在这里插入图片描述
自增完再判断是否符合条件
在这里插入图片描述
若仍满足判断条件,继续执行语句体
在这里插入图片描述
然后又自增
在这里插入图片描述
再次进行判断
在这里插入图片描述
若还是判定为true,继续执行语句体
在这里插入图片描述
接着再自增控制对象
在这里插入图片描述

…一轮一轮轮执行下去,直到判断条件为false
在这里插入图片描述
然后循环结束,执行循环之外的语句。
在这里插入图片描述


核心要点
在这里插入图片描述


for 循环格式

        for(初始化语句;条件判断语句;条件控制语句){
            循环体;
        }

练习一
在这里插入图片描述

代码如下:

package com.itheima.loopdemo;

public class ForDemo1 {
    public static void main(String[] args) {
        //1.需求:打印10次HelloWorld

        //分析:
        //i  1 ~ 5
        /*for(初始化语句;条件判断语句;条件控制语句){
            循环体;
        }*/

        for (int i = 1; i <= 10 ; i++){
            System.out.println("HelloWorld");
        }
    }
}

运行结果:
在这里插入图片描述


练习二 —— 倒着输出数字

代码如下:

package com.itheima.test;

public class Test12 {
    public static void main(String[] args) {
        //需求1:打印1-5

        //分析:
        //开始条件:1
        //结束条件:5
        for (int i = 1 ; i <= 5; i++){
            //第一次循环:i = 1
            //第二次循环:i = 2
            //i : 1 2 3 4 5
            System.out.println(i);
        }



        //需求2:打印5-1
        //分析:
        //开始条件: 5
        //结束条件:1
        for(int i = 5 ; i >= 1 ; i--){
            System.out.println(i);
        }



    }
}

运行结果:
在这里插入图片描述


练习三 —— 断线重连
在这里插入图片描述

代码如下:

package com.itheima.test;

public class Test13 {
    public static void main(String[] args) {
       /* 在实际开发中,需要重复执行的代码,会选择循环实现。
        比如:如左图所示。玩游戏的时候,如果网不好那么会经常断线重连。
        那么断线重连这个业务逻辑就需要重复执行。
        假设现在公司要求,断线重连的业务逻辑最多只写5次。
        请用代码实现。
        备注:断线重连的业务逻辑可以用输出语句替代。*/


        //分析:
        //1,因为我们需要重复执行某段代码,所以需要用循环解决
        //循环的次数 5 次
        //开始条件:1
        //结束条件:5

        for(int i = 1; i <= 5;i++){
            System.out.println("第" + i + "次执行断线重连的业逻务辑");
        }
    }
}

运行截图:
在这里插入图片描述


练习三 —— 求和

在这里插入图片描述


求解过程
在这里插入图片描述

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

在这里插入图片描述
在这里插入图片描述
此时得到五个数的和,这也是JAVA里的累加思想过程。


代码如下:

package com.itheima.test;

public class Test14 {
    public static void main(String[] args) {
      /*  需求:在实际开发中,如果要获取一个范围中的每一个数据时,也会用到循环。
        比如:求1-5之间的和*/


        //分析:
        //1.循环1~5得到里面的每一个数字
        //开始条件:1
        //结束条件:5

        //用来进行累加的
        int sum = 0;
        for(int i = 1; i <= 5 ; i++){
         
            //int sum = 0;
            //System.out.println(i);
            //可以把得到的每一个数字累加到变量sum当中
            sum = sum + i;// sum += i;
            //System.out.println(sum);
        }

        //当循环结束之后,表示已经把1~5累加到变量sum当中了
        //System.out.println(sum);


    }
}

运行结果:
在这里插入图片描述


扩展小点:

//1.求和的变量不能定义在循环的里面,因为变量只在所属的大括号中有效

代码如下:

package com.itheima.demo2.test;

public class Test14 {
    public static void main(String[] args) {
        
        for(int i=1;i<=5;i++){
            int sum=0;
            System.out.println(i);
            sum=sum+i;

        }
        System.out.println(sum);//该句代码报错
    }
}

报错原因:
定义的sum在for循环的大括号里,那么sum的作用域也就是for循环里的循环体。在这里插入图片描述


//2.如果我们把变量定义在循环的里面,那么当前变量只能在本次循环中有效。

代码如下:

package com.itheima.demo2.test;

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

        for(int i=1;i<=5;i++){
            int sum=0;
            sum=sum+i;
            System.out.println(sum);
        }

    }
}

运行结果原因分析:
当本次循环结束之后,变量就会从内存中消失。
第二次循环开始的时候,又会重新定义一个新的变量。
在这里插入图片描述

//3.如果我们把变量定义在循环的外面,那么就能实现当前变量的累加。

代码如下:

package com.itheima.demo2.test;

public class Test14 {
    public static void main(String[] args) {
        int sum=0;
        for(int i=1;i<=5;i++){
            sum=sum+i;
        }
        System.out.println(sum);
    }
}

运行结果分析:
sum定义在循环外,sum属于main方法,在main的大括号里都起作用,只声明定义一次,不会像在循环里一样,每次执行循环里的语句体都会重新初始化声明一次num。
在这里插入图片描述

结论:如果以后我们要写累加求和的变量。可以把变量定义在循环的外面。


总结

哦啦咪咪大呀,我是懒狗,俺们明天见!(24.5.11)
在这里插入图片描述


系列文章目录

提示:文章顺序即为学习顺序。

【逆天OP懒狗的JAVA自学笔记–1.入门篇】已完结
【逆天OP懒狗的JAVA自学笔记–2.JAVA基础概念篇一】已完结
【逆天OP懒狗的JAVA自学笔记–2.JAVA基础概念篇二】已完结
【逆天OP懒狗的JAVA自学笔记–2.JAVA基础概念篇三】已完结
【逆天OP懒狗的JAVA自学笔记–3.IDEA扩展设置】已完结
【逆天OP懒狗的JAVA自学笔记–4.算数运算符初阶】已完结
【逆天OP懒狗的JAVA自学笔记–4.算数运算符进阶】已完结
【逆天OP懒狗的JAVA自学笔记–4.自增自减运算符】已完结
【逆天OP懒狗的JAVA自学笔记–4.赋值运算符】已完结
【逆天OP懒狗的JAVA自学笔记–4.关系运算符】已完结
【逆天OP懒狗的JAVA自学笔记–4.逻辑运算符】已完结
【逆天OP懒狗的JAVA自学笔记–4.三元运算符】已完结
【逆天OP懒狗的JAVA自学笔记–4.原码、反码、补码原理及应用】第一阶段完成


  • 36
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在Linux CentOS系统上安装docker-compose有几个步骤。首先,你需要确保你的系统是CentOS 7或更高版本。然后,你可以通过官方的脚本来自动安装docker-compose。你也可以手动下载docker-compose的二进制文件,并将其复制到/usr/local/bin目录下。关于docker-compose的版本选择,你可以根据你安装的Docker版本来选择对应的docker-compose版本。最后,你可以通过curl命令从官方网站下载docker-compose二进制文件,并将其复制到/usr/local/bin目录下。安装完成后,你可以通过执行docker-compose -v命令来验证docker-compose是否成功安装。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Linux(CentOS)安装Docker、Docker Compose](https://blog.csdn.net/qq_40437152/article/details/120902100)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [centos7离线安装docker-compose,安装包](https://download.csdn.net/download/l664938026/85096520)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [centos安装docker-compose](https://blog.csdn.net/u010833154/article/details/127687207)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值