跟着老侯玩编程 跟着老侯玩编程
首页
  • 基础语法
  • 网络编程
  • 设计模式
  • 基础篇
  • 进阶篇
  • 框架篇
  • Redis
  • Alibaba
  • 课程目录
  • 码农宝典
留言
首页
  • 基础语法
  • 网络编程
  • 设计模式
  • 基础篇
  • 进阶篇
  • 框架篇
  • Redis
  • Alibaba
  • 课程目录
  • 码农宝典
留言
  • 基础篇

    • 聊聊环境变量
    • 永不过时的HelloWorld
    • 标识符
    • 数据类型
    • 运算符
    • 语句
      • 分支结构
        • if
        • switch
        • 练习
      • 循环结构
        • for语句
        • 练习
        • while
        • do-while
        • 三种循环语句的比较
    • 数组
    • 方法详解
    • 类和对象
    • 类的成员
    • 类的继承
    • 类的形式
    • 封装和多态
    • 接口和Lambda表达式
    • 泛型编程
    • 常用API之函数式接口
    • 常用API
    • 异常机制
    • 多线程
    • 常用API之File类
    • IO流
    • 集合
    • 常用API之Stream流
    • 网络编程
    • 枚举
    • 注解和反射
  • 进阶篇

    • MySQL基础
    • 数据库-JDBC
    • HTML基础
    • CSS基础
    • JavaScript-基础
    • 服务器-Servlet
    • 服务器-Servlet3
    • 动态网页-JSP
    • Ajax
    • 前端项目工程化
    • ECMA2015
    • 模块化规范
  • 框架篇

    • 工具-Maven
    • 框架-MyBatis
    • 框架-Spring
    • 框架-SpringMVC
    • 工具-SpringBoot
    • 工具-Nginx
  • Java
  • 基础篇
舞动的代码
2022-05-17
目录

语句

其实一直以来我都没有办法把语句和表达式明确的区分开,主要的原因是好像没有一个明确定义,类似汉语中一个词和一句话的区分一样。当然其实是有办法的,像下面的这种情况


//这种写法我们可以称为语句,而针对i=10这个一段我们是可以称为它是一个赋值表达式
int i=10;

1
2
3
4

在Java甚至于编程中的语句根据代码执行的流程(即先后顺序)进行了分类。程序从上到下逐行地执行,中间没有任何判断和跳转(这种方式也是程序的默认执行顺序)。除此之外还有一些可以改变代码执行顺序的关键字,这就是今天的要聊的内容

# 分支结构

根据条件,选择性地执行某段代码。

# if

格式一:


if(逻辑表达式){
    当逻辑表达式的结果为true时执行的代码

}else{
    当逻辑表达式的结果为false时执行的代码
}

1
2
3
4
5
6
7
8

注意:if语句块可以独立存在,但是else必须和if待在一起,同时当待执行的代码只有一行时是可以省略大括号的

格式二:


if(逻辑表达式1){

}else if(逻辑表达式2){

}else if(逻辑表达式3){

}else{
    表示以上所有的逻辑表达式都不成立时执行的代码
}

1
2
3
4
5
6
7
8
9
10
11

曾经我看到过很多省略大括号的写法,我个人是极其不推荐这种写法,至少从代码阅读上来讲会增加阅读成本。难道省略一对括号就能体现出编码水平么

练习

定义三个变量,将该三个变量进行排序输出,要求顺序是从小到大

# switch

名词解释:

  • case穿透:从某个符合情况的case开始一直向下执行直至遇到结束语句或者整体执行完成

整体的意思可以理解为当该变量的值等于某个case后面的值时,执行这个case对应的代码。同时在JDK1.8之后switch开始支持字符串类型

基础语法


switch(含有具体值的变量){

    case 变量的某个值:
    ...
    dfault:当以上所有的case都不成立时执行的代码,类似于if语句中的else
}

1
2
3
4
5
6
7
8

虽然case穿透在某些情况下能够给我们提供些便利,但是我们也应该知道如何避免case穿透,具体的玩法有以下几种

  • break:跳出它所在的语句块,它是语句级别的控制

  • return:它是方法级别的控制,终止它所在的方法的运行,向该方法的调用者提供一个值(返回值)

  • System.exit(0):退出Java虚拟机,一般不用

虽然同属于分支语句,但是if和switch有明显的不同,它们的使用场景如下

  • 如果判断的具体数值不多,而且符合byte、 short 、int、 char、String这五种类型。虽然两个语句都可以使用,建议使用swtich语句。因为效率稍高。

  • 其他情况:对区间判断,对结果为boolean类型判断,使用if,if的使用范围更广。

# 练习

1)对学生成绩大于60分的,输出“合格”。低于60分的,输出”不合格”。

2)根据用于指定月份,打印该月份所属的季节。3,4,5 春季 6,7,8 夏季 9,10,11 秋季 12, 1, 2 冬季

3)大家都知道,男大当婚,女大当嫁。那么女方家长要嫁女儿,当然要提出一定的条件:高:180cm以上;富:财富1千万以上;帅:是

  • 如果这三个条件同时满足,则:”我一定要嫁给他!!!”
  • 如果三个条件有为真的情况,则:”嫁吧,比上不足,比下有余。”
  • 如果三个条件都不满足,则:”不嫁!”

4)打印输出闰年还是平年,每个月份的天数和所属季节

# 循环结构

根据循环条件,重复性的执行某段代码。循环语句本身并不难理解,难以理解是当这些语句遇到具体问题时,整体的逻辑会变的很复杂。而这个问题的解决需要大量的联系

# for语句

初涉循环语句可能很难理解,尤其是for循环,因为里面包含了三个表达式。但是只要梳理清楚其关系还是很容易理解的

基础语法


for(表达式1;表达式2;表达式3){
    循环执行的语句
}

1
2
3
4
5

流程解析

  • 表达式1:当for循环首次执行时它会被执行,后面循环则不执行该表达式
  • 表达式2:作为循环的控制条件,该表达式会被反复执行一直到结果为false
  • 表达式3:每次循环它都是最后执行,执行多次

退出循环

  • break:跳出它所在的语句块,它是语句级别的控制

  • return:它是方法级别的控制

  • System.exit(0):退出Java虚拟机,一般不用

  • continue:表示跳过本次执行

注意:将一个循环写到另一个循环里面这种情况称为嵌套循环。而这种情况下需要知道的是外层循环执行一次,内层循环执行多次

# 练习

1)求1~100所有整数的和1+2+3+4..+100=5050

2)打印1~100之间所有是7的倍数的整数的个数及总和(体会设置计数器的思想)

3)输出所有的水仙花数,所谓水仙花数是指一个3位数,其各个位上数字立方和等于其本身。例如: 153 = 1 x 1x1 + 3 x 3 x 3 + 5 x 5 x 5

4)在控制台上打印输出一个直角三角形的图案(参考99乘法表)

5)在控制台上打印输出一个正三角形(选作)

# while

基础语法:


while(逻辑表达式){
    循环执行的代码
}
1
2
3
4

# do-while

基础语法:


do{
    循环执行的内容
}while(逻辑表达式);
1
2
3
4

# 三种循环语句的比较

相同点:

都是循环语句,可以循环执行特定的代码

不同点:

while、do-while:

  • while会先判断逻辑表达式是否成立,然后再决定是否执行循环

  • do-while先循环一次,然后再判断逻辑表达式,也就意味着该类型的循环及时表达式是false那么它也会运行一次

while、for

  • for循环因为所有的表达式都是写在循环语句中,所以控制比较灵活,同时比while要节省机器资源

注:JDK1.5提供了foreach循环,方便的遍历集合、数组元素。

同理在循环语句中如果需要执行的代码只有一句也可以省略大括号,但是同样不推荐使用

运算符
数组

← 运算符 数组→

Theme by Vdoing | Copyright © 2013-2023 冀ICP备16006233号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×