Java基础03_流程控制语句_顺序_选择_循环

主要内容

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

学习目标

  • 三种控制结构熟练使用

前言 流程控制

流程控制: 在一个程序执行的过程中, 语句块中各条语句的执行顺序.

问题: 为什么要进行流程控制?

例如: 一个打印1到5之间数字的小代码, 我们可以采用方式1: 顺序控制结构, 代码自上而下被机器依次执行.

System.out.println(1);
System.out.println(2);
System.out.println(3);
System.out.println(4);
System.out.println(5);

如果是打印1-100呢?

System.out.println(1);
System.out.println(2);
...
...
System.out.println(99);
System.out.println(100);

这样写会出事故的. 既然是重复的事情, 大多数编程语言都具备了循环这种语句结构, 我们只需要告诉机器, 针对哪些情况做同样的事情就好了.所以有如下方式2, 也就是循环控制语句:

int num = 1;
//告诉机器要做同样事情的条件范围, 于是, 程序员可以少写很多代码了.
while(num<=100){
    System.out.println(num);
    num++;
}

还有些情况, 机器自动的做什么操作是不明确的.

例如: 学员分配宿舍, 如果是男的,系统分配一个男生宿舍; 女的自动分配一个女生宿舍. 也就是针对学员的性别做判断, 执行不同的操作, 这就是选择结构, 或者叫分支结构.

String gender = "男";    
//String gender = "女";  
if(gender=="男"){        //分支结构会根据gender不同取值, 执行不同的操作
    System.out.println("请到男生宿舍报道");
}else{
    System.out.println("请到女生宿舍报道");
}

现在, 你知道了, 这些不同的控制结构, 可以让我们更容易实现不同的功能.

问题: 流程控制结构有哪些?

顺序结构, 选择(分支)结构, 循环结构

第一节 顺序结构

1.1 概述

顺序结构: 代码自上到下,依次执行.

​ 我们在前两章中写的代码都是顺序执行的, java虚拟机在运行字节码程序的时候, 会按照代码顺序, 自上到下依次执行.

第二节 选择结构

2.1 概述

选择结构: 分情况判断, 根据不同的情况, 选择执行不同的代码块.

2.2 种类(2种)

选择控制结构1: if选择语句

语法格式:

//------------if语法1:------------
if(布尔表达式){
    执行语句;
}

//------------if语法2:------------
if(布尔表达式){
    执行语句1;
}else{
    执行语句2;
}

//------------if语法3:------------
if(布尔表达式){
    执行语句1;
}else if(布尔表达式){
    执行语句2;
}...{
    ...;
}else{
    执行语句n;
}

选择控制结构2: switch选择语句

语法格式:

switch(表达式){
case 目标值1:
    执行语句1;
    break;
case 目标值2:
    执行语句2;
    break;
...:
    ...;
    break;
case 目标值n:
    执行语句n;
    break;
default:
    执行语句default;
    break;
}

switch语句的执行流程:

​ 1, 求表达式的值

​ 2, 把上面表达式的值依次与case后面的目标值去比对

  • 如果比对成功, 执行该case块的执行语句, 直到遇上break跳出整个switch块
  • 如果没有比对成功, 那么继续比对下一个case

​ 3, 如果所有case目标值都没有比对成功, 那么执行default语句块.

学员提问1: case后面的目标值可以使用哪些Java数据类型?

答: byte, short, int, char, enum(JDK5), String(JDK7)

其实本质上,switch只支持整形数据.

byte,short,char类型可以在不损失精度的情况下向上转型成int类型;

枚举类型有一个ordinal方法,该方法实际上返回一个int类型的数值;

String类中有一个hashCode()方法, 结果也是返回int类型.

使用的时候, 记住上面几种类型就可以了.

学员提问2: break省略会有什么现象?

​ 答: 在匹配成功的case目标值开始执行下面的语句, 因为没有break终止继续执行, 那么下面的case目标值不再检测, 直接执行下去(成了顺序执行结构了).

第三节 循环结构

3.1 概述

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

3.2 种类(3种)

循环控制结构1: for循环语句

语法格式:

for(初始化变量;循环条件;表达式){
    循环体;
}

执行流程:

  1. 创建初始化变量;

  2. 不断使用初始化变量去做循环条件判断

    循环条件判断返回true,执行循环体;

    循环条件判断返回false,退出循环.

  3. 表达式用于修改初始化变量

注意事项:

  1. 初始化变量,只执行一次;
  2. 表达式用于改变变量;
  3. 循环条件用于限定循环的次数.

循环控制结构2: while循环语句

语法格式:

创建初始化变量;
while(循环条件){
    循环体;
    改变循环变量;
}

for和while的区别:

  • 两者可以互换使用;
  • for适合于次数一定的循环;
  • while适合次数不限定的循环.

循环控制结构3: do...while循环语句

语法格式:

do{
    循环体;
    循环变量变更;
}while(循环条件判断);

3.4 循环控制

场景: 到现在为止的循环语句都是循环到条件不符合才会终止, 是否可以中途实现程序的跳出呢?

break: 终止循环

continue: 跳过本次循环,进入下一轮循环

3.5 for和while的选择

循环代码编写技巧

1, 循环次数明确一般用for,循环次数不定一般用while

2, 设置初始变量值

3, 设置循环的禁止条件(否则会死循环下去)

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,186评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,858评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,620评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,888评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,009评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,149评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,204评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,956评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,385评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,698评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,863评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,544评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,185评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,899评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,141评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,684评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,750评论 2 351

推荐阅读更多精彩内容