一、控制语句分类(3类)

  1. 选择语句
  2. 循环语句
  3. 转向语句

二、选择语句(分支语句)

  1. if语句
  2. switch语句

1.if语句

1.1语法格式:

第一种写法:int a = 100;int b = 200;if(布尔表达式){java语句;java语句;}这里的一个大括号{} 叫做一个分支。该语法的执行原理是:如果布尔表达式的结果是true,则执行大括号中的程序,否则大括号中代码不执行。
第二种写法:if(布尔表达式){  // 分支1java语句;     }else{            // 分支2java语句;}执行原理:如果布尔表达式的结果是true,则执行分支1,分支2不执行。如果布尔表达式的结果是false,分支1不执行,执行分支2.以上的这个语句可以保证一定会有一个分支执行。else表示其它。
第三种写法:if(布尔表达式1){ // 分支1java语句;}else if(布尔表达式2){ // 分支2java语句;}else if(布尔表达式3){java语句;}else if(布尔表达式4){java语句;}....以上if语句的执行原理:先判断“布尔表达式1”,如果“布尔表达式1”为true,则执行分支1,然后if语句结束了。当“布尔表达式1”结果是false,那么会继续判断布尔表达式2的结果,如果布尔表达式2的结果是true,则执行分支2,然后整个if就结束了。从上往下依次判断,主要看第一个true发生在哪个分支上。第一个true对应的分支执行,只要一个分支执行,整个if结束。
第四种写法:if(布尔表达式1){ // 分支1java语句;}else if(布尔表达式2){ // 分支2java语句;}else if(布尔表达式3){java语句;}else if(布尔表达式4){java语句;}else{java语句; // 以上条件没有一个成立的。这个else就执行了。}

注:

  1. 对于if语句来说,在任何情况下只能有1个分支执行,不可能 存在2个或者更多个分支执行。if语句中只要有1个分支执行了, 整个if语句就结束了。(对于1个完整的if语句来说的。)
  2. 以上4种语法机制中,凡是带有else分支的,一定可以保证会有 一个分支执行
    以上4种当中,第一种和第三种没有else分支,这样的语句可能会导致最后一个分支都不执行。
    第二种和第四种肯定会有 1个分支执行。
  3. 当分支当中“java语句;”只有1条,那么大括号{}可以省略,但为了 可读性,最好不要省略。(有的程序员在编写代码的时候,可能会故意 将大括号{}省略,你能看懂就行。)

小知识点:

 if(sex)System.out.println("男");System.out.println("HelloWorld!"); // 以上的这3行代码没有问题,合乎语法。/*else // 这一行编译报错,因为else缺少ifSystem.out.println("女");*/以上代码编译器会自动转换为:if(sex){System.out.println("男");}System.out.println("HelloWorld!"); else// 这一行编译报错,因为else缺少ifSystem.out.println("女");
        int aa=10, bb = 10;if (a = b){//语法错误}if (1){//c/c++可以,Java不行}if (aa){//c/c++可以,Java不行,Java要boolean变量才行}

2.switch语句

2.1语法格式

 switch(值){case 值1:java语句;java语句;...break;case 值2:java语句;java语句;...break;case 值3:java语句;java语句;...break;default:java语句;}

以上是一个完整的switch语句:
其中:break;语句不是必须的。default分支也不是必须的。

2.2执行原理

拿“值”与“值1”进行比较,如果相同,则执行该分支中的java语句,
然后遇到"break;"语句,switch语句就结束了。
如果“值”与“值1”不相等,会继续拿“值”与“值2”进行比较,如果相同,
则执行该分支中的java语句,然后遇到break;语句,switch结束。
注意:如果分支执行了,但是分支最后没有“break;”,此时会发生case 穿透现象。
所有的case都没有匹配成功,那么最后default分支会执行。

2.3switch语句支持的值

支持int类型以及String类型。

switch语句本质上是只支持int和String,
但是byte,short,char也可以
使用在switch语句当中,因为byte short char可以进行自动类型转换

switch语句中“值”与“值1”、“值2”比较的时候会使用“==”进行比较。

2.4 case合并、case穿透

        switch (score) {case 10:case 9:ans = "优";break;case 8:ans = "良";//break;case 7:ans = "中";break;case 6:ans = "及格";break;case 5:case 4:case 3:case 2:case 1:case 0:ans = "不及格";break;default:ans = "输入的成绩有误";}
  • case10、case9 和 case 5、case 4、 case 3、case 2、 case 1、case 0都是属于case合并
  • 比如进入case8由于case8没有break会case穿透到case7才结束

三、选择语句

  1. for循环
  2. while循环
  3. do…while…循环

1.for循环

1.1语法格式

 for(初始化表达式; 条件表达式; 更新表达式){循环体; // 循环体由java语句构成java语句;java语句;java语句;java语句;....}

1.2执行原理

先执行初始化表达式,并且初始化表达式只执行1次
然后判断条件表达式的结果,如果条件表达式结果为true,则执行循环体。
循环体结束之后,执行更新表达式。
更新完之后,再判断条件表达式的结果,
如果还是true,继续执行循环体。

直到更新表达式执行结束之后,再次判断条件时,条件为false,for循环终止。

更新表达式的作用是:控制循环的次数;换句话说,更新表达式会更新
某个变量的值,这样条件表达式的结果才有可能从true变成false,从而
终止for循环的执行,反之,很有可能会导致死循环。

2.while循环

2.1语法格式

 while(布尔表达式){循环体;}

2.2执行原理

判断布尔表达式的结果,如果为true就执行循环体,
循环体结束之后,再次判断布尔表达式的结果,
如果还是true,继续执行循环体,
直到布尔表达式结果为false,while循环结束。

2.3for与while互相转换

 for(初始化表达式; 布尔表达式; 更新表达式){循环体;}初始化表达式;while(布尔表达式){循环体;更新表达式;}

2.4 执行次数

while循环的循环次数是:0 ~ n次

3.do…while…循环

3.1语法格式

 do {循环体;}while(布尔表达式);

注:while后有分号!!
因为while后是()结尾不是{}结尾!!

3.2执行原理

先执行循环体当中的代码,执行一次循环体之后,
判断布尔表达式的结果,如果为true,则继续执行
循环体,如果为false循环结束。

2.3 执行次数

对于do…while循环来说循环体至少执行1次。循环体的执行次数是:1 ~ n

注意与while循环次数的差别!
对于while循环来说,循环体执行次数是:0~n次。

四、选择语句

  1. break
  2. continue
  3. return

1.break

  1. break;语句比较特殊,特殊在:break语句是一个单词成为一个完整的java语句。另外:continue也是这样,他俩都是一个单词成为一条语句。
  2. break;语句的执行并不会让整个方法结束,break;语句主要是用来终止离它最近的那个循环语句。

1.1适用范围及作用

  1. 第一个位置:switch语句当中,用来终止switch语句的执行。 用在switch语句当中,防止case穿透现象,用来终止switch。

  2. 第二个位置:break;语句用在循环语句当中,用来终止循环的执行。 用在for当中 用在while当中
    用在do…while…当中。

1.2 使用break跳出指定的循环

第一步:你需要给循环起一个名字,例如:a: for(){b:for(){if(条件表达式) break a;code1;code2;code3;}}
第二步:终止:break a;

2.continue

2.1适用范围及作用

用在循环语句中!
终止当前"本次"循环,直接进入下一次循环继续执行。

注:一但执行到continue,continue以下代码不执行,直接执行更新表达式,进入下一次循环。

2.2 使用continue跳过指定循环

 a:for(;;更新表达式1){b:for(;;更新表达式2){if(条件表达式){continue a;}code1;code2;code3;}}

3.return

java控制语句(超详细!)相关推荐

  1. 微信公众号支付开发步骤Java(超详细)

    做为一个刚刚做完微信公众号的小白,我不得不吐槽一下微信给的官方文档,里面那坑一个接一个,我这是跳进去再爬出来,一下给做了四天,本来技术就不够好,还被文档带的跑偏跑偏...我在这给大家整理一份超级详细的 ...

  2. 拼图游戏(JAVA)超详细!入股不亏

    哎,最近被这个搞的头晕眼花的,烦死了!!! 不多解释了,代码注释很详细(毕竟写了好几天还熬了个大✌夜),不会欢迎私聊(虽然本人JAVA真的拉) MainJFrame.java//主窗体(package ...

  3. Java多线程超详细总结

    目录(?)[-] 一扩展javalangThread类 二实现javalangRunnable接口 三Thread和Runnable的区别 四线程状态转换 五线程调度 六常用函数说明 使用方式 为什么 ...

  4. 实战 本地服务器Confluence 7.13部署 一篇就够(从0开始安装配置 Debian11 + Mysql + Java)超详细

    前言 在公司用了好几年的Confluence (WIKI),不说他有多方便吧,主要是习惯了操作方式.最近被封在家里,就想着趁时间比较充裕就在家里部署一套Confluence,1是为了把自己平时的学习P ...

  5. Java简介超详细整理,适合新手入门

    目录 一.Java 简介 二.Oracle 公司 三.Java平台体系 四.Java语言主要特点 1.Java 语言是简单的 2.Java 语言是面向对象的 3.Java语言是分布式的 4.Java ...

  6. 超详细的Java面试题总结(四 )之JavaWeb基础知识总结

    系列文章请查看: 超详细的Java面试题总结(一)之Java基础知识篇 超详细的Java面试题总结(二)之Java基础知识篇 超详细的Java面试题总结(三)之Java集合篇常见问题 超详细的Java ...

  7. Java中的多线程编程(超详细总结)

    文章目录 Java中的多线程编程(超详细总结) 一.线程与多线程的概念 二.线程与进程之间的关系 三.一个线程的生命周期 四.多线程的目的和意义 五.线程的实现的方式 Java中的多线程编程(超详细总 ...

  8. Java并发知识总结,超详细!(上)

    Java并发知识总结,超详细! 首先给大家分享一个github仓库,上面放了 200多本经典的计算机书籍 ,包括C语言.C++.Java.Python.前端.数据库.操作系统.计算机网络.数据结构和算 ...

  9. 超详细的Java面试题总结(三)之Java集合篇常见问题

    系列文章请查看: 超详细的Java面试题总结(一)之Java基础知识篇 超详细的Java面试题总结(二)之Java基础知识篇 List,Set,Map三者的区别及总结 List:对付顺序的好帮手 Li ...

  10. project项目导入java路径_Eclipse项目怎么导入IDEA并运行(超详细)

    导入项目 集成环境:intellij idea 2020.1.2 演示系统:dell windows 10 eclipse项目如何导入idea并成功运行,从头到尾步骤,保姆式图解如下: 首先准备好一个 ...

最新文章

  1. JavaScript 实现数组的foreach
  2. JSON 常量详情参考 (内含对中文不转义的参数)
  3. while循环里嵌套一个if_if-else嵌套太深?教你一个新手都能掌握的设计模式搞定!...
  4. leetcode——242. 有效的字母异位词
  5. 力扣904,水果成篮(JavaScript)
  6. java开发个人简历模板_java程序开发个人简历模板
  7. 数据结构与算法分析(七)递归
  8. pda mysql_Mysql 基础
  9. python2代码转换为python3
  10. 电脑清理(C盘清理,卸载软件以及注册表清理)
  11. 关于“硬解码”与“软解码”
  12. 用html+css做一个网页设计
  13. 「首席架构师精选」精选绘图软件
  14. 北交中外合作计算机类出国留学,北交大中外合作办学怎么样
  15. 数据流图-2(分层数据流图)
  16. 新一代打包神器Walle(瓦力)使用小结
  17. Windows电脑关闭触摸键盘的方法
  18. 跨时钟域同步-结绳法
  19. UI(1)---手机界面设计中12种常用布局
  20. 新电脑自带win11,开机怎样跳过连网

热门文章

  1. 软件安装过程中,系统提示需要安装.Net Framework 3.5解决
  2. 运行c语言程序显示已停止运行程序,c – “此应用程序已请求运行时以不寻常的方式终止它.”...
  3. 在win10下安装Linux双系统
  4. Spring整合mybatis
  5. 纯JavaScript实现表白代码
  6. VB使用API的简明教程
  7. Cognos常见错误解决办法
  8. R语言大作业(四):上海市、东京 1997-2018 年GDP值分析
  9. android studio 创建项目失败原因Failed to create
  10. 计算机网络笔记(含王道计算机考研课件)