java-基础语法(二)

java-基础语法(二)

在这里插入图片描述

一、流程控制语句

1.1 流程控制语句分类

  • 顺序结构

  • 分支结构(if, switch) 循环

  • 结构(for, while, do…while)

1.2 顺序结构

顺序结构执行流程图:
请添加图片描述

1.3 分支结构之if语句

if语句格式1

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

执行流程:

①首先计算关系表达式的值

②如果关系表达式的值为true就执行语句体

③如果关系表达式的值为false就不执行语句体

④继续执行后面的语句内容
请添加图片描述

if语句格式2

	格式:
	if (关系表达式) {
	    语句体1;	
	} else {
	    语句体2;	
	}

执行流程:

①首先计算关系表达式的值

②如果关系表达式的值为true就执行语句体1

③如果关系表达式的值为false就执行语句体2

④继续执行后面的语句内容
请添加图片描述

1.4 switch语句结构

  • 格式

    switch (表达式) {
    	case 1:
    		语句体1;
    		break;
    	case 2:
    		语句体2;
    		break;
    	...
    	default:
    		语句体n+1;
    		break;
    }
    
  • 执行流程:

    • 首先计算出表达式的值
    • 其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结 束。
    • 最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。
public class Demo1 {
    public static void main(String[] args) {
        //键盘录入月份数据,使用变量接收
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个月份:");
        int month = sc.nextInt();
        //case穿透
        switch(month) {
            case 1:
            case 2:
            case 12:
                System.out.println("冬季");
                break;
            case 3:
            case 4:
            case 5:
                System.out.println("春季");
                break;
            case 6:
            case 7:
            case 8:
                System.out.println("夏季");
                break;
            case 9:
            case 10:
            case 11:
                System.out.println("秋季");
                break;
            default:
                System.out.println("你输入的月份有误");
        }
    }
}
  • 注意:如果switch中得case,没有对应break的话,则会出现case穿透的现象。

1.5 for循环结构

  • 循环:

    循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复 执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循环,否则循环将一直执行下去,形成死循环。

  • for循环格式:

    for (初始化语句;条件判断语句;条件控制语句) {
    	循环体语句;
    }
    
  • 格式解释:

    • 初始化语句: 用于表示循环开启时的起始状态,简单说就是循环开始的时候什么样
    • 条件判断语句:用于表示循环反复执行的条件,简单说就是判断循环是否能一直执行下去
    • 循环体语句: 用于表示循环反复执行的内容,简单说就是循环反复执行的事情
    • 条件控制语句:用于表示循环执行中每次变化的内容,简单说就是控制循环是否能执行下去
  • 执行流程:

    1. 执行初始化语句
    2. 执行条件判断语句,看其结果是true还是false
      如果是false,循环结束
      如果是true,继续执行
    3. 执行循环体语句
    4. 执行条件控制语句
    5. 回到2继续
控制台输出所有的“水仙花数”
public class ForTest04 {
    public static void main(String[] args) {
		//输出所有的水仙花数必然要使用到循环,遍历所有的三位数,三位数从100开始,到999结束
		for(int i=100; i<1000; i++) {
			//在计算之前获取三位数中每个位上的值
			int ge = i%10;
			int shi = i/10%10;
			int bai = i/10/10%10;
			
			//判定条件是将三位数中的每个数值取出来,计算立方和后与原始数字比较是否相等
			if(ge*ge*ge + shi*shi*shi + bai*bai*bai == i) {
				//输出满足条件的数字就是水仙花数
				System.out.println(i);
			}
		}
    }
}

1.6 while结构

  • while循环完整格式:

    初始化语句;
    while (条件判断语句) {
       循环体语句;
     	条件控制语句;
    }
    
  • while循环执行流程:

  1. 执行初始化语句
  2. 执行条件判断语句,看其结果是true还是false
    如果是false,循环结束
    如果是true,继续执行
  3. 执行循环体语句
  4. 执行条件控制语句
  5. 回到②继续

示例代码:

public class WhileDemo {
    public static void main(String[] args) {
        //需求:在控制台输出5次"HelloWorld"
		//for循环实现
		for(int i=1; i<=5; i++) {
			System.out.println("HelloWorld");
		}
		System.out.println("--------");
		//while循环实现
		int j = 1;
		while(j<=5) {
			System.out.println("HelloWorld");
			j++;
		}
    }
}

1.7 do…while循环结构

  • 完整格式:

      初始化语句;
      do {
      	循环体语句;
      	条件控制语句;
      }while(条件判断语句);
      ```
    
    
  • 执行流程:

  1. 执行初始化语句
  2. 执行循环体语句
  3. 执行条件控制语句
  4. 执行条件判断语句,看其结果是true还是false
    如果是false,循环结束
    如果是true,继续执行
  5. 回到2继续

示例代码:

public class DoWhileDemo {
    public static void main(String[] args) {
        //需求:在控制台输出5次"HelloWorld"
		//for循环实现
		for(int i=1; i<=5; i++) {
			System.out.println("HelloWorld");
		}
		System.out.println("--------");
		//do...while循环实现
		int j = 1;
		do {
			System.out.println("HelloWorld");
			j++;
		}while(j<=5);
    }
}

1.8 三种循环的区别

  • 三种循环的区别

    • for循环和while循环先判断条件是否成立,然后决定是否执行循环体(先判断后执行)
    • do…while循环先执行一次循环体,然后判断条件是否成立,是否继续执行循环体(先执行后判断)
  • for循环和while的区别

    • 条件控制语句所控制的自增变量,因为归属for循环的语法结构中,在for循环结束后,就不能再次被访问到了
    • 条件控制语句所控制的自增变量,对于while循环来说不归属其语法结构中,在while循环结束后,该变量还可以继续使用
  • 死循环(无限循环)的三种格式

    1. for( ;; ){}
    2. while(true){}
    3. do {} while(true);

1.9 跳转控制语句

  • 跳转控制语句(break
    • 跳出循环,结束循环
  • 跳转控制语句(continue
    • 跳过本次循环,继续下次循环
  • 注意: continue只能在循环中进行使用!

1.10 循环嵌套

  • 循环嵌套概述:在循环中,继续定义循环

  • 示例代码:

    	public static void main(String[] args) {
            //外循环控制小时的范围,内循环控制分钟的范围
            for (int hour = 0; hour < 24; hour++) {
                for (int minute = 0; minute < 60; minute++) {
                    System.out.println(hour + "时" + minute + "分");
                }
                System.out.println("--------");
            }
        }
    
  • 理解:

    • 请反复理解这句话(整个内循环,就是外循环的一个循环体,内部循环体没有执行完毕,外循环是不会继续向下执行的)
  • 结论:

    • 外循环执行一次,内循环执行一圈

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Jenkins+Ant+Jmeter】持续集成接口测试平台搭建

一、环境准备&#xff1a; 1、JDK&#xff1a;Java Downloads | Oracle 2、Jmeter&#xff1a;Apache JMeter - Download Apache JMeter 3、Ant&#xff1a;Apache Ant - Binary Distributions 4、Jenkins&#xff1a;Jenkins 二、Jemter脚本准备&#xff1a; 1、脚本目录&a…

云服务器和专用服务器之间的区别

在当今数字化时代&#xff0c;服务器是构建和支持各种应用和服务的基础设施之一。随着技术的发展和需求的增加&#xff0c;出现了不同类型的服务器&#xff0c;其中最常见的是云服务器和专用服务器。本文将详细介绍云服务器和专用服务器之间的区别&#xff0c;以帮助您更好地了…

多线程安全的案例展示与解决方案

一、概念 1. 什么是线程安全 当多个线程访问一个对象时&#xff0c;如果不用考虑这些线程在运行时环境下的调度和交替执行&#xff0c;也不需要进行额外的同步&#xff0c;或者在调用方进行任何其他的协调操作&#xff0c;调用这个对象的行为都可以获得正确的结果&#xff0c…

【Linux】iptables防火墙

文章目录 一、Linux防火墙基础1.Linux防火墙概术2.netfilter/iptables3.四表五链4.规则链之间的匹配顺序 二、iptables 安装1.常用的控制类型2.常用的管理选项 三、示例演示1.添加新的规则2.查看规则列表3.删除规则4.清空规则 四、规则的匹配1.通用匹配2.隐含匹配3.显式匹配 一…

Mybatis generator

文章目录 依赖式使用引入依赖配置文件设置生成使用中出现的异常 Mybatis中javaType和jdbcType对应关系int、bigint、smallint 和 tinyint是使用整数数据的精确数字数据类型。 插件式使用添加依赖和插件创建逆向工程的配置文件执行MBG插件的generate目标执行结果 逆向工程&#…

shell SNAT与DNAT

文章目录 SNATSNAT原理与应用SNAT实验 DNATDNAT原理与应用DNAT实验 SNAT SNAT原理与应用 SNAT 应用环境&#xff1a;局域网主机共享单个公网IP地址接入Internet&#xff08;私有不能早Internet中正常路由&#xff09; SNAT原理&#xff1a;修改数据包的源地址。 SNAT转换前提…

C++进阶 —— lambda表达式(C++11新特性)

目录 一&#xff0c;模板函数sort 二&#xff0c;lambda表达式 一&#xff0c;模板函数sort 在C98中&#xff0c;如对一个数据集合中的元素进行排序&#xff0c;可使用模板函数sort&#xff0c;如元素为自定义类型&#xff0c;需定义排序时的比较规则&#xff1b;随着C的发展…

intel驱动程序和支持助理常见问题:不识别、无法检测等问题解决方法

起因&#xff1a; wifi驱动有点问题&#xff0c;于是想着更新一下官方的驱动&#xff0c;下载intel驱动程序和支持助理并安装完成后&#xff0c;打开成了这个样子&#xff0c;刷新多少次都没有用&#xff0c;就是不识别。 解决方法&#xff1a; 经过一波胡乱操作&#xff0…

【Linux入门】Linux权限及管理

【Linux入门】Linux权限及管理 目录 【Linux入门】Linux权限及管理Linux权限管理文件访问者的分类文件类型和访问权限&#xff08;事物属性&#xff09; 文件权限值的表示方法文件访问权限的相关设置方法目录的权限实现共享目录粘滞位目录权限总结 作者&#xff1a;爱写代码的刚…

算法基础学习笔记——⑫最小生成树\二分图\质数\约数

✨博主&#xff1a;命运之光 ✨专栏&#xff1a;算法基础学习 目录 ✨最小生成树 &#x1f353;朴素Prim &#x1f353;Kruskal算法 ✨二分图 &#x1f353;匈牙利算法 ✨质数 &#x1f353;&#xff08;1&#xff09;质数的判定——试除法 &#x1f353;&#xff08;2&…

(转载)基于遗传算法的多目标优化算法(matlab实现)

1 理论基础 1.1 多目标优化及Pareto最优解 多目标优化问题可以描述如下&#xff1a; 其中&#xff0c;f(x)为待优化的目标函数&#xff1b;x为待优化的变量&#xff1b;Ib和ub分别为变量x的下限和上限约束&#xff1b;Aeq*xbeq为变量x的线性等式约束&#xff1b;A*x≤b为变…

数据库作业

目录 数据库teaching中的表结构和表记录。 问题&#xff1a; 答案&#xff1a; 数据库teaching中的表结构和表记录。 &#xff08;1&#xff09;学生信息表student    #student表结构      create table if not exists student (      studentno char(11) not…

c++ 11标准模板(STL) std::map(六)

定义于头文件<map> template< class Key, class T, class Compare std::less<Key>, class Allocator std::allocator<std::pair<const Key, T> > > class map;(1)namespace pmr { template <class Key, class T, clas…

【Linux驱动】认识驱动(驱动的概念、驱动分类)

目录 1、什么是驱动&#xff1f; 2、应用程序调用驱动基本流程 3、file_operations 结构体 4、驱动的分类 1、什么是驱动&#xff1f; 驱动就是一段程序&#xff0c;能够获取外设或者传感器数据、控制外设。驱动获取到的数据会提交给应用程序。 在 Linux 中一切皆为文件&…

物联网GPRS模块流量计算

物联网GPRS模块流量计算 MQTT(消息队列遥测传输) 是ISO 标准下一个基于TCP/IP的消息发布/订阅传输协议。 一、TCP消耗流量计算 以太网数据包结构&#xff1a; 以太网首部 IP首部 TCP首部 APPL首部 用户数据 以太网尾部 以太网首部为14个字节 IP首部为20个字节 TCP首部…

【CesiumJS入门】(1)创建Viewer及相关配置项

前言 在上一篇博客中&#xff0c;我们直接在vue组件完成初始渲染并创建 DOM 节点后通过 const map new Cesium.Viewer(cesiumContainer)构建了一个地球场景。 而本篇&#xff0c;我们将会专门把地球创建的方法写在一个js文件中&#xff0c;以便后续的调用。 同时&#xff0…

【JavaSE】Java基础语法(三十二):Stream流

文章目录 1. 体验Stream流2. Stream流的常见生成方式3. Stream流中间操作方法【应用】4. Stream流终结操作方法【应用】5. Stream流的收集操作 1. 体验Stream流 案例需求 按照下面的要求完成集合的创建和遍历 创建一个集合&#xff0c;存储多个字符串元素把集合中所有以"…

torch_scatter.scatter()的使用方法

学习目标&#xff1a; 在学习PyG时&#xff0c;遇到了 scatter 这个函数&#xff0c;经过学习加上自身的理解&#xff0c;记录如下以备复习 学习内容&#xff1a; src&#xff1a;表示输入的tensor&#xff0c;接下来被处理&#xff1b;index&#xff1a;表示tensor对应的索引…

机器学习 day14 ( 神经网络 )

神经网络的发展 最开始的动机&#xff1a;是通过构建软件来模拟大脑&#xff0c;但今天的神经网络几乎与大脑的学习方式无关 我们依据大脑中的神经网络&#xff0c;来构建人工神经网络模型。左图中&#xff1a;一个神经元可以看作一个处理单元&#xff0c;它有很多的输入/树突…

chatgpt赋能python:Python创建一个Animal类介绍

Python创建一个Animal类介绍 Python是一种高级编程语言&#xff0c;其简单易学、灵活性强、可读性高以及强大的库使得Python非常受欢迎。在Python中创建类非常容易且非常常见&#xff0c;我们可以使用Python创建各种类型的类。今天&#xff0c;我们将讨论如何使用Python创建一…