流程控制语句结构分为:

1、顺序结构:从上到下依次执行

2、分支结构:多个分支选择其中一个分支执行

3、循环结构:重复执行某些代码

3.1 顺序结构

执行过程:从上到下顺序执行

3.1.1 输出语句

1、System.out.print(输出内容); #输出内容后不换行

2、System.out.println(输出内容); #输出内容后换行

#输出常量
System.out.print(1);
System.out.print('尚');
System.out.print(44.4);
System.out.print(true);
System.out.print("尚硅谷");

#输出变量
int a = 1;
char c = '尚';
double d = 44.4;
boolean b = true;
String school = "尚硅谷";
System.out.print(a);
System.out.print(c);
System.out.print(d);
System.out.print(b);
System.out.print(school);

#输出拼接结果
System.out.print("a = " + a);
System.out.print("c = " + c);
System.out.print("d = " + d);
System.out.print("b = " + b);
System.out.print("school = " + school);

3.1.2 输入语句

键盘输入代码的三个步骤:

1、准备Scanner类型的变量

2、提示输入xx

3、接收输入内容

示例代码:

//1、准备Scanner类型的变量
java.util.Scanner input = new java.util.Scanner(System.in);//System.in默认代表键盘输入

//2、提示输入xx
System.out.print("请输入一个整数:");

//3、接收输入内容
int num = input.nextInt();

//列出各种数据类型的输入
int num = input.nextInt();
long bigNum = input.nextLong();
double d = input.nextDouble();
boolean b = input.nextBoolean();
String s = input.next();
char c = input.next().charAt(0);//先按照字符串接收,然后再取字符串的第一个字符(下标为0)

3.2 分支结构

分支结构:根据条件选择性的执行某些代码

分为:

1、条件判断:if...else系列

2、选择结构:switch...case系列

3.2.1 条件判断

1、单分支结构

语法格式:

if(条件表达式){
   当条件表达式成立(true)时需要执行的语句块;
}

执行过程:

条件成立,就执行{}其中的语句块,不成立就不执行。

注意:

(1)if(条件表达式)中的条件表达式的结果必须是boolean类型

(2)当{}中的语句只有一个语句(简单的语句,也可以是一个复合语句)时,可以省略{},但是我们不建议省略

        //省略{}的情况
if(score<0 || score>100)
System.out.println("输入有误!");//简单的语句
else
//复合语句
if(score==100){
System.out.println("满分");
}else if(score>=80){
System.out.println("优秀");
}else if(score>=60){
System.out.println("及格");
}else{
System.out.println("不及格");
}

示例代码:

int year = 2019;
int days = 28;
if(year%4==0 && year%100!=0 || year%400==0){
   days= 29;
}

2、双分支结构

语法格式:

if(条件表达式){
   当条件表达式成立(true)时需要执行的语句块1;
}else{
   当条件表达式不成立(false)时需要执行的语句块2;
}

执行过程:

当条件表达式成立(true)时执行语句块1,否则执行语句块2

注意:

(1)if(条件表达式)中的条件表达式的结果必须是boolean类型

(2)当{}中的语句只有一个语句(简单的语句,也可以是一个复合语句)时,可以省略{},但是我们不建议

示例代码:

int num = 10;
if(num%2==0){
   System.out.println(num + "是偶数");
}else{
    System.out.println(num + "是奇数");
}

3、多分支结构

语法格式:

if(条件表达式1){
   当条件表达式1成立的时候,执行的语句块1;
}else if(条件表达式2){
   当条件表达式1不成立,
     条件表达式2成立的时候,执行的语句块2;
}else if(条件表达式3){
   当条件表达式1不成立,
      条件表达式2也不成立,
     条件表达式3成立的时候,执行的语句块3;
}
。。。
【else{
当以上所有的条件表达式都不成立,需要执行的语句块n+1;
}】

执行过程:

(1)多个条件顺序往下判断,如果上面有一个条件成立了,下面的条件就不看了

(2)多个分支也只会执行其中的一个

注意:

(1)每一个条件表达式都必须是boolean值

(2)当{}中只有一个语句时,也可以省略{},但不建议省略

(3)当多个条件是“互斥”关系(没有重叠部分),顺序可以随意;

当多个条件是“包含”关系(有重叠部分),顺序不能随意,小的在上,大的在下面

示例代码:

            int score = 78;
if(score==100){
System.out.println("满分");
}else if(score>=80){
System.out.println("优秀");
}else if(score>=60){
System.out.println("及格");
}else{
System.out.println("不及格");
}

4、嵌套

执行过程:

当嵌套在if中,就是当外面的if成立时,才会看里面的条件判断;

当嵌套在else中,就当外面的else满足时,才会看里面的条件判断;

3.2.2 选择结构

语法格式:

switch(表达式){
   case 常量值1:
       语句块1;
       【break;】
   case 常量值2:
       语句块2;
       【break;】  
   。。。
  【default:
       语句块n+1;
       【break;】
    】
}

执行过程:

(1)入口

①当switch(表达式)的值与case后面的某个常量值匹配,就从这个case进入;

②当switch(表达式)的值与case后面的所有常量值都不匹配,寻找default分支进入;

(2)一旦从“入口”进入switch,就会顺序往下执行,直到遇到“出口”

(3)出口

①自然出口:遇到了switch的结束}

②中断出口:遇到了break等

注意:

(1)switch(表达式)的值的类型,只能是:4种基本数据类型(byte,short,int,char),两种引用数据类型(枚举、String)

(2)case后面必须是常量值,而且不能重复

示例代码:

int month = 4;
switch(month){
   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;
   case 12:
   case 1:
   case 2:
       System.out.println("冬季");
       break;
   default:
       System.out.println("输入有误!");
}

3.3 循环结构

循环结构:

“重复”执行某些代码

循环结构的分类:

1、for循环

2、while循环

3、do...while循环

3.3.1 for循环

语法格式:

for(;;){
   循环体语句块;
   if(条件表达式){
  break;
  }
}
for(初始化表达式; 循环条件; 迭代表达式){
   循环体语句块;(需要重复执行的代码)
}

执行过程:

(1)初始化表达式;

(2)判断循环条件;

(3)如果循环条件成立,先执行循环体语句块;然后执行迭代表达式,再回到(2)...

(4)如果循环条件不成立,会结束for;

或者在当前循环中遇到break语句,也会结束当前for循环;

注意:

(1)for(;;)中的两个;是不能多也不能少

(2)循环条件必须是boolean类型

示例代码:

//遍历1-100之间的偶数
for(int i=1; i<=100; i++){//每次循环的步幅是1
   if(i%2==0){
       System.out.println(i);
  }
}

//遍历1-100之间的偶数
for(int i=2; i<=100; i+=2){//每次循环的步幅是2
   System.out.println(i);
}

3.3.2 while循环

语法格式:

while(循环条件){
   循环体语句块;
}

经典的形式:
while(true){
循环体语句块;
   if(条件表达式){
  break;
  }
}

执行过程:

(1)先判断循环条件

(2)如果循环条件成立,就执行循环体语句块;然后回到(1)

(3)如果循环条件不成立,就结束while循环;

如果在循环体语句块中,遇到break,也会结束while循环;

注意:

(1)while(循环条件)中循环条件必须是boolean类型

示例代码:

//遍历1-100之间的偶数
int num = 2;
while(num<=100){
   System.out.println(num);
   num+=2;
}

3.3.3 do...while循环

语法格式:

do{
   循环体语句块;
}while(循环条件);

执行过程:

(1)先执行一次循环体语句块;

(2)判断循环条件

(3)如果循环条件成立,再次执行循环体语句块;然后回到(2)...

(4)如果循环条件不成立,就结束do...while循环;

如果在循环体语句块中,遇到break,也会结束do...while循环;

注意:

(1)while(循环条件)中循环条件必须是boolean类型

(2)do{}while();最后有一个分号

(3)do...while结构的循环体语句是至少会执行一次,这个和for和while是不一样的

示例代码:

//从键盘输入整数,统计正数、负数的个数,输入0结束
java.util.Scanner input = new java.util.Scanner(System.in);

int num;
int positive = 0;
int negative = 0;
do{
   System.out.print("请输入整数(0结束):");
   num = input.nextInt();
   
   if(num > 0){
       positive++;
  }else if(num < 0){
       negatvie++;
  }
}while(num!=0);

System.out.println("正数的个数:" + positive);
System.out.println("负数的个数:" + negatvie);

3.3.4 三种循环的选择

原则:三种循环之间是可以互相转换的,都能实现循环的功能

建议(习惯上):当我们次数比较明显的时候,或者说从几循环到几的时候,一般先考虑for;

当循环体语句块至少要执行一次的时候,一般先考虑do...while;

当循环条件比较明显,但是次数不明显,循环体语句块也不是至少执行一次,那么可以考虑while结构;

三种循环结构都具有四要素:

(1)循环变量的初始化表达式

(2)循环条件

(3)循环变量的修改的迭代表达式

(4)循环体语句块

3.3.5 跳转语句

1、break

用于:

(1)switch结构

作用:结束switch结构

(2)循环结构

作用:结束当前循环

2、continue

用于:

只能用于循环结构

作用:提前结束本次循环,继续下一次循环

3、return(后面讲)

自学Java第三章——《流程控制语句结构》的更多相关文章

  1. java 第三章 流程控制语句

    1.条件语句 (1)if 语句 ( 单一条件) if (表达式){ 执行语句块 } (2)执行流程 · if 语句 条件表达式可以是任何一种逻辑表达式   如果表达式值为true,则执行花括号的内容后 ...

  2. Python实验报告——第3章 流程控制语句

    实验报告 [实验目的] 1.掌握python中流程控制语句的使用,并能够应用到实际开发中. [实验条件] 1.PC机或者远程编程环境 [实验内容] 1.完成第三章流程控制语句实例01-09,实战一到实 ...

  3. 零基础学Python--------第3章 流程控制语句

    第3章 流程控制语句 3.1程序的结构 计算机在解决某个具体问题时,主要有3种情况,分别是顺序执行所有的语句.选择执行部分语句和循环执行部分语句.程序设计中的3种基本结构为顺序结构.选择结构和循环结构 ...

  4. Java学习笔记之---流程控制语句

    Java学习笔记之---流程控制语句 (一)循环语句 (1)if语句 if(布尔表达式){ //如果布尔表达式为true将执行的语句 } if(i%2!=0){ System.out.println( ...

  5. “全栈2019”Java第三章:安装开发工具IntelliJ IDEA

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  6. Think in Java 第三章操作符

    Think in Java 第三章操作符 赋值 对象赋值 ​ 我们真正操作的是对对象的引用.所以倘若"将一个对象赋值给另一个对象",实际上是将"引用"从一个地方 ...

  7. Java(6)流程控制语句中分支结构if与switch

    作者:季沐测试笔记 原文地址:https://www.cnblogs.com/testero/p/15201528.html 博客主页:https://www.cnblogs.com/testero ...

  8. Java 第三章 选择结构

    第三章   选择结构 if基本语法: if(条件){// 表达式 // 代码块 } eg: int a = 10; if(a > 1){ System.out.println("内容& ...

  9. 【Java初探03】——流程控制语句

    做任何事情都应当遵守一定的原则,程序设计也是如此,需要有流程控制语言来实现与用户的交流.流程控制对于任何一门编程语言来说都是至关重要的,它提供了控制程序步骤的基本手段,如果没有流程控制语句,整个程序将 ...

随机推荐

  1. 「算法竞赛进阶指南」0x01 位运算 知识笔记

    二进制是计算机的根本! 你了解她它吗? int lowbit(int x) { return x&(-x);//x&(~x+1),~x=-1-x; } int __builtin_ct ...

  2. Echarts大数据可视化物流航向省份流向迁徙动态图,开发全解+完美参数注释

    最近在研究Echarts的相关案例,毕竟现在大数据比较流行,比较了D3.js.superset等相关的图表插件,还是觉得echarts更简单上手些. 本文是以原生JS为基础,如果使用Vue.js的话, ...

  3. SpringBoot-2.1.1系列一:使用https

    1.什么是https? HTTPS中文名称:超文本传输安全协议,是以安全为目标的HTTP通道,简单讲是HTTP的安全版.即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要 ...

  4. Win10系统下MySQL压缩版安装配置教程

    MySQL分为安装版和压缩.为了以后MySQL出问题想重装时的各种不必要的麻烦,我个人推荐压缩版MySQL.下面进入教程: 进入官网下载MySQL压缩包,并解压如下 配置环境变量---将bin文件的目 ...

  5. UGUI源码之Selectable

    Selectable是Button.InputField.Toggle.ScrollBar.Slider.Dropdown的基类. Selectable的继承的类与接口如下: public class ...

  6. ABA问题怎么解:AtomicStampedReference和AtomicMarkableReference

    本博客系列是学习并发编程过程中的记录总结.由于文章比较多,写的时间也比较散,所以我整理了个目录贴(传送门),方便查阅. 并发编程系列博客传送门 并发编程的基石--CAS机制这篇文章中介绍到CAS机制有 ...

  7. MAVEN配置及Spring Tool Suite的Maven配置

    1.下载Maven http://maven.apache.org/download.cgi 如图点击下载即可 2.Maven配置 2.1配置本地仓库 创建目录maven-repository如图所示 ...

  8. pc和H5响应式方案

    pc响应式:(所有应用在pc端) 解决方案1.媒体查询 2.flex,百分比  3.栅格布局 媒体查询 @media screen and (max-width:768px) @media scree ...

  9. STM321的SPI驱动遇到的一个坑!!

    最近在做项目要用到FATFS文件驱动和SD卡驱动,SD卡驱动我用的是SPI的通信方式,在挂载文件系统是总是挂在失败了,花了一天时间反复检查,才发现SPI在接收时候卡死: 为了寻找问题的原因,整个人都快 ...

  10. redis订阅发布简单实现

    适用场景 业务流程遇到大量异步操作,并且业务不是很复杂 业务的健壮型要求不高 对即时场景要求不高 原理介绍 redis官网文档:https://redis.io/topics/notification ...