Java基础(03)——Java语法结构(顺序与选择结构)

2023-11-01

版权声明

  • 本文原创作者:清风不渡
  • 博客地址:https://blog.csdn.net/WXKKang

Java中的语法结构

Java中的基本语法结构有几种呢,下面就先来列举一下吧 ~ ~

  • 顺序结构
  • 选择结构
  • 循环结构

1、顺序结构

我们都知道,对于我这样一个Java界的小学生来说,Java就好像是由一个单词一个单词,一句一句的“英文”组成的一片“文章’,那么既然是一片“文章”,当虚拟机运行它的时候就像是一个人在阅读这篇”文章“,一句话一句话的往下读,这样的话就好理解了

所谓的顺序结构,就是指程序按照语句的结构一条一条的执行,我们在使用这种语法结构的时候,只需将合法语句按照合理的执行顺序一 一排列好,就可以逐一执行了。

下面就是一个简单的小段Java代码,来形象的说明顺序语法结构:

public class Demo{
/*
原创作者:清风不渡
博客地址:https://blog.csdn.net/WXKKang
*/
 public static void main(String[] args){
 	System.out.println("还有三天就是祖国母亲的七十周年纪念日了!");
 	System.out.println("我现在不想工作!");
 	System.out.println("不想学习!");
 	System.out.println("只想祝我伟大的祖国母亲生日快乐!");
 }
}

运行效果:
顺序结构示例代码
我们可以看到,代码中的输出语句按照代码的顺序被逐一打印出来,它是有顺序的并且它的顺序就是编写的代码顺序,而这就是所谓的顺序语句结构,是不是很容易理解呢??

2、选择结构

我们可以联想一下,当程序执行Java代码的时候,就像是一个人在读一篇”文章“;那么,我们是否可以选择性的去读呢,如果我”喜欢“这段文章,我就去读这一段,如果我喜欢下下一段文章,那么我是否可以跳过这段文章去读那一篇我喜欢的文章呢?答案肯定是可以的嘛。

当然,程序去执行代码的时候肯定不是因为”喜欢“而去读取的哟,那是什么呢?肯定是”需要“呀,当程序需要执行这段代码的时候执行这段代码,它就会跳过不需要运行的代码,而选择自己需要运行的代码去运行他们,这样是不是方便了很多呢?

通过了我们的联想之后,我们来认真学习一下选择结构语句吧!

选择结构也叫分支结构,它可根据判断条件来选择需执行的分支,常用的分支结构有两种:

  1. if…else
    通过if后的关系表达式进行判断,通常是一个二选一的分支
  2. switch…case
    这是一个多路分支语句,根据选择值的不同,选择不同的分支进行执行

那么,现在我们就来认真学习它们吧,首先是if语句,一般情况下,它有三种写法,现在就来一 一学习吧:

(1)简单的if语句

(1)语法

if(判断条件){
	如果符合条件执行的代码;
}

通俗的来说,就是当小括号内的判断条件满足(即结果为true)的时候,就执行大括号内的代码;如果小括号内的条件不满足(即结果为false)的时候,则跳过大括号内的代码,直接遵从顺序结构语句执行这段代码之后的代码

话不多说,我们直接上代码来使用一下它,思想就会变得很明朗了:

public class Demo{
	public static void main(String[] args){
		if(1>2){
			System.out.println("这是if大括号内的代码");
		}
		System.out.println("这是if大括号外的代码");
	}
}

运行之后我们会发现,if大括号内部的代码没有被执行,而是执行了下面的代码,这是为什么呢?显而易见,是因为1不大于2,所以小括号里的条件没有满足(即结果为false),这样就不会执行if大括号内的代码,而是直接跳过了这段代码。当我们把1>2改成1<2的时候,不只是if大括号外面的代码会执行,它里面的也会执行,这就是简单的if选择语句。

(2)if…else 语句

语法:

if(判断条件){
	满足判断条件时执行的代码;
}else{
	不满足判断条件时执行的条件;
}

有了上面的思想之后,这个语句就变得好理解了,不过是当满足判断条件的时候执行与if相对应的大括号里的代码,否则(也就是不满足判断条件)的时候执行与else相对应的大括号里的代码而已,废话不多说,咱直接上代码瞧瞧:

  • if…else语句例子
public class Demo{
	/*
	原创作者:清风不渡
	博客地址:https://blog.csdn.net/WXKKang
	*/
	public static void main(String[] args){
		int i = 0;
		if(i>2){
			System.out.println("这是与if相对应的大括号里的内容");
		}else{
			System.out.println("这是与else相对应的大括号里的内容");
		}
	}
}

运行结果:
if...else运行结果
当程序运行之后,执行了与else对应的大括号里的内容,而与if对应的大括号里的内容则没有被执行,这是为什么呢?很显然是因为1不大于2嘛,这样,小括号里的判断语句没有满足(即为false),这样就跳过了与if对应的大括号里的内容,那么当小括号里的判断条件满足的话,会发生什么事呢?

通过上面的例子,我们更加理解了if…else选择语句,现在我们就可以根据需要写出一段具有两个分支的代码了,那么,当我们对于一件事的判断有几种情况的话,是不是就要写很多很多if…else语句呢?答案肯定的不是的呀,那么如何解决这个问题呢,在这种情况之下,我们的多分支if语句就横空出世了 ~ ~

(3)多分支if语句

让我们先来看看语法思考一下吧:

if(判断条件1){
	满足判断条件1时执行的代码;
}else if(判断条件2){
	满足判断条件2时执行的代码;
}else if(判断条件3){
	满足判断条件3时执行的代码;
}else{
	以上判断条件都不满足的时候执行的代码;
}

有了上面两种if语句的基础之后,我相信理解这一部分内容就不是事儿了,无非就是多加了几个判断条件实现多个选择嘛,理解了之后让我们来写个例子练习一下

  • if多分支语句例子

小明周末的时间安排是周六看电影,周日去游乐场,写入如下程序:

public class Demo{
	/*
	原创作者:清风不渡
	博客地址:https://blog.csdn.net/WXKKang
	*/
	public static void main(){
		int day = 1;
		if(day==6){
			System.out.println("今天的天气真适合看电影");
		}else if(day==7){
			System.out.println("今天是要去游乐场玩哦");
		}else if(day>=1&&day<=5){
			System.out.println("今天不能去玩哦,要上课的");
		}else{
			System.out.println("地球上之后星期一到星期天哦");
		}
	}
}

那么,对于这个问题只能使用这种方法呢,肯定不是呀,我觉得Java是一个特别灵活的语言,同一个问题都有不同的方法去解决,那么,我们再学习一种多分支选择语句吧,那就是switch…case语句了

(4)switch…case语句

概念:switch…case语句提供多路分支,用于选择的数据类型可以是整数、Char、枚举类型。

switch(表达式){
	case 取值1:
		执行语句;
		breakcase 取值2:
		执行语句;
		break...
	default:
		当得到的值上面都没有时执行的代码;
		break;
}

switch语句特点:

  1. switch语句的选择类型支持数值,如byte、short、int、char。
  2. case与default之间的执行顺序:先判断所有的case,若没有匹配的case则执行default
  3. switch语句的停止条件是遇到了break关键字或者switch结束的大括号
  4. 如果匹配的case或者default没有break,那么程序将会继续向下执行,直到遇见break或着switch结尾结束
  5. case中的值必须与switch表达式的值具有相同的数据类型,而且case后跟的必须是常量而不能是变量
  6. break最好不要省略,不然将会出现:case穿透

注:没有default的switch语句是不规范或者是有问题的,最好不要这样写,或者说:所有的switch语句都要定义default分支

  • break语句
    在每个case分支之后,通常都要写break语句,这将跳出switch语句,否则的话程序会顺序执行,这就是所谓的case穿透

那么我们可以利用case穿透吗,当然是可以的,虽然它本义上是一个不好的现象,但是聪明的程序员会将任何有用的东西利用,这样,我们来写一个例子理解一下吧

例子:通过输入的月份数来判断是哪一个季度(2月、3月、4月为春季,5月、6月、7月为夏季,8月、9月、10月为秋季,11月、12月、1月为冬季)

正常情况下,我们是这样写的:

public class Demo {
	/*
	原创作者:清风不渡
	博客地址:https://blog.csdn.net/WXKKang
	*/
	public static void main(String[] args) {
		int month = 3;
		switch (month) {
		case 1:
			System.out.println(month + "月是冬季");
			break;
		case 2:
			System.out.println(month + "月是春季");
			break;
		case 3:
			System.out.println(month + "月是春季");
			break;
		case 4:
			System.out.println(month + "月是春季");
			break;
		case 5:
			System.out.println(month + "月是夏季");
			break;
		case 6:
			System.out.println(month + "月是夏季");
			break;
		case 7:
			System.out.println(month + "月是夏季");
			break;
		case 8:
			System.out.println(month + "月是秋季");
			break;
		case 9:
			System.out.println(month + "月是秋季");
			break;
		case 10:
			System.out.println(month + "月是秋季");
			break;
		case 11:
			System.out.println(month + "月是冬季");
			break;
		case 12:
			System.out.println(month + "月是冬季");
			break;
		default:
			System.out.println("地球上只有十二个月哟");
			break;
		}
	}
}

很多人觉得,哇这也太麻烦了吧,这么麻烦的话学这个还有什么意思,停停停,不是告诉你了嘛,聪明的程序员会将任何有用的东西利用(划重点),现在,我们就将case穿透利用起来,写一个比上面稍简单的代码来实现它吧。

利用了case穿透后的代码是这个样子的:

public class Demo {
	/*
	原创作者:清风不渡
	博客地址:https://blog.csdn.net/WXKKang
	*/
	public static void main(String[] args) {
		int month = 3;
		switch (month) {
		case 2:
		case 3:
		case 4:
			System.out.println(month + "月是春季");
			break;
		case 5:
		case 6:
		case 7:
			System.out.println(month + "月是夏季");
			break;
		case 8:
		case 9:
		case 10:
			System.out.println(month + "月是秋季");
			break;
		case 11:
		case 12:
		case 1:
			System.out.println(month + "月是冬季");
			break;
		default:
			System.out.println("地球上只有十二个月哟");
		}
	}
}

这样子是不是就简单多了呢,所以说,任何事物都是有两面性的,虽然它是一个“事故”,但是,我们也可以将它利用起来呀,是不是觉得很有趣呢,当然,既然同样是选择,那么if语句是否也可以解决它呢,答案当然是可以的,大家一起动动脑吧 ~ ~,而我要去睡觉觉咯 ~ ~

我还是那个java界的小学生,一起努力吧!!
欢迎各位看官评论哟 ~ ~ 小生在此谢过了 ~ ~

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java基础(03)——Java语法结构(顺序与选择结构) 的相关文章

  • 游戏外挂怎么做?

    文章目录 1 什么是游戏外挂 2 外挂的分类及实现原理 2 1 辅助类外挂 2 2 专用插件类外挂 2 3 通用工具 2 4 内存修改器 2 5 变速器 2 6 按键精灵 2 7 模拟器 2 8 破解版 转载自 Anti Cheat Exp

随机推荐

  • java TRC20

    直接上代码 创建地址 离线 private static SecureRandom random new SecureRandom 具体方法 public static Map
  • 15-数据结构-二叉树的遍历,递归和非递归

    简介 本文主要是代码实现 二叉树遍历 递归和非递归 用栈 主要为了好理解 直接在代码处 加了详细注释 方便复习和后期默写 主要了解其基本思想 为后期熟练应用打基础 遍历的意义 就是为了实现在二叉树上 进行各种操作 给每个结点都光顾到位 到根
  • C语言判断是否到达文件末尾

    血的教训 判断文件是否读到末尾的时候 使用 while fgets 不要用 while feof fgets 不然回车符弄死人
  • Pixhawk之姿态解算篇(2)_mahony算法分析

    一 开篇 还是没能进入到源码部分研究 对姿态解算过程太过于模糊 所以主要开始研究一下关于姿态解算的过程和实现 本篇博文主要是以mahony的算法为基础理解姿态解算的过程 主要参考的论文就是William Premerlani and Pau
  • linux创建文件的方法

    linux创建文件可以通过以下六个方式来完成 gt 标准重定向符允许我们创建一个 0KB 的空文件 touch 如果文件不存在的话 touch 命令将会创建一个 0KB 的空文件 echo 通过一个参数显示文本的某行 printf 用于显示
  • python基础学习--基础

    一 基础知识 1 1 基础语法及编码规范 1 定义变量加if Python 通常是一行写完一条语句 但如果语句很长 我们可以使用反斜杠 来实现多行语句sad total item one item two item three item f
  • 二极管(一):反向恢复时间

    一 反向恢复过程 在图1所示的二极管电路中 加入一个如图2所示的输入电压 即在 0 时间内 输入为 二极管导通 电路中有电流流过 假设二极管的正向压降为 当 远大于 时 可忽略不计 如果在 时刻 输入 突然从 变为 在理想情况下 二极管将即
  • 一文让你彻底了解Linux内核文件系统(大总结)

    一 文件系统特点 文件系统要有严格的组织形式 使得文件能够以块为单位进行存储 文件系统中也要有索引区 用来方便查找一个文件分成的多个块都存放在了什么位置 如果文件系统中有的文件是热点文件 近期经常被读取和写入 文件系统应该有缓存层 文件应该
  • 一百零八、Kettle采集Kafka数据到HDFS(踩坑,亲测有效)

    Kafka到HDFS 除了用Kafka API和flume之外 还可以用kettle 最大优点是不用写代码 版本 Kettle版本 8 2 Hadoop版本 3 1 3 前提 详情请看鄙人的一百零一 Kettle8 2 0连接Hive3 1
  • Python实现支持人机对战的五子棋软件(超详细)

    完整工程下载链接 文章目录 利用pygame实现一个支持双人对战以及人机对战的小游戏 最终效果展示 总体框架介绍 具体功能以及算法思想 一 主界面与棋盘设计 二 移位与胜负判定 三 棋型价值设计 四 人机模式和双人模式的设计 五 游戏状态
  • 使用PHPExcel实现Excel文件的导入和导出

    在之前有写过一篇文章讲述了使用 PHP快速生成excel表格文件并下载 这种方式生成Excel文件 生成速度很快 但是有缺点是 1 单纯的生成Excel文件 生成的文件没有样式 单元格属性 填充色 宽度 高度 边框颜色 不能自定义 2 生成
  • java.lang.unsatisfiedlinkerror解决方法

    有时候我们接入第三方sdk的时候 同时导入了一些so库 编译运行后发生会报以下异常 java lang unsatisfiedlinkerror 解决方法 在主工程app的build gradle中加入以下代码 作用是指定so库的位置 an
  • python自动拷贝日志

    usr bin env python import os import time import re import os from time import sleep cmd3 adb pull resources map BaiduMap
  • MacBook配置Chromedriver

    最近换了mbp 之前的项目中包含了Chromedriver 但是我不想设置path了 所以重新配置了下Chromedriver 先看自己浏览器版本 去下载对应版本的Chromedriver ChromeDriver WebDriver fo
  • php怎么接收用户字符,PHP把用户的提交cookie转成字符串

    小编这次带来的是这种cookie类型的获取方式哦 当你想获取cookie字符串时 gt 偷懒 gt 搜索引擎查询好久 gt 没找到 gt 哎 gt 无奈只能自己写啦 gt 原理 用户访问 带cookie gt 获取cookie数组 gt 获
  • 解决flink消费kafka过期数据和目前存量数据的计算(未来的方向)

    背景 目前公司业务需要统计超过7天以上的特征统计 但是kafka只存7天的数据 如果只想通过flink sql去计算30天的用户特征要求当天生效 这是完不成的 但是看到下面的分享 感觉未来的方向有了 一 2021 Apache Flink
  • mysql同时执行多条语句_让MySQL同时执行多条SQL语句的解决办法

    版权声明 本文为博主原创文章 未经博主允许不得转载 最近做一个MySQL方面的东西发现了这个问题 就是在一个Statement中执行一条SQL语句的时候可以正确执行 如果同时执行多条 就会报SQL语法错误 伤透了脑筋 经过网上查找 发现有两
  • 纯电阻电路中的等效变换

    目录 1 电阻的串并联等效 1 串联 2 并联 2 Y形联结和 形联结的等效变换 1 Y gt 2 gt Y 3 实际电源的两种模型及其等效变换 1 实际电压源模型 2 实际电流源模型 3 两种模型间的等效变换 4 受控源的等效 等效的核心
  • 虚拟机安装服务器2008,VMware Workstation 虚拟机安装64位windows 2008 R2 系统

    偶看现在使用的电脑是 惠普 康柏 Elite 8300 MT Mini Tower 操作系统 Windows 7 旗舰版 64位 基本硬件展示 处理器 英特尔 第三代酷睿 i5 3470 3 20GHz 四核 主板 惠普 3397 内存 8
  • Java基础(03)——Java语法结构(顺序与选择结构)

    Java中的语法结构 版权声明 Java中的语法结构 1 顺序结构 2 选择结构 1 简单的if语句 2 if else 语句 3 多分支if语句 4 switch case语句 版权声明 本文原创作者 清风不渡 博客地址 https bl