流程控制语句结构分为:

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. 洛谷$P1600$ 天天爱跑步 树上差分

    正解:树上差分 解题报告: 传送门$QwQ$! 这题还挺妙的,,,我想了半天才会$kk$ 首先对一条链$S-T$,考虑先将它拆成$S-LCA$和$LCA-T$,分别做.因为总体上来说差不多接下来我就只 ...

  2. $Noip2018/Luogu5020$ 货币系统 $dp$

    $Luogu$ 去年我这题获得了$20$的好分数$ovo..........$ $Sol$ 现在来看其实非常显然叭,只要把能被别的数表示出来的数去掉就好了. $f[i]$表示$i$数能否被其他数表示. ...

  3. web前端安全——常见的web攻击方法

    面试题:你所了解的web攻击? 1.xss攻击 2.CSRF攻击 3.网络劫持攻击 4.控制台注入代码 5.钓鱼 6.DDoS攻击 7.SQL注入攻击 8.点击劫持 一.xss攻击 XSS攻击:跨站脚 ...

  4. 端口扫描器--利用socket协议

    #!/usr/bin/env python # -*- coding:UTF-8 -*- import optparse import socket import threading # 用法 pyt ...

  5. WPF 添加提示动画

    下面放一张效果图: 那么具体是怎么实现呢: 前端XAML中: <Image Source="/Images/tips.png" HorizontalAlignment=&qu ...

  6. 【转】Hibernate面试问题集锦: 概述

    ImportNew注: 本文是ImportNew编译整理的Java面试题系列文章之一.你可以从这里查看全部的Java面试系列. Q.怎么配置Hibernate? A.Configuration类使用配 ...

  7. C++ string 常用函数

    C++ String常用函数 一,类型别名 size_type 无符号整型 iterator 迭代器类型 const_iterator 只读迭代器 reverse_iterator 逆序迭代器 con ...

  8. Redis 通配符批量删除key

    问题: 线上有部分的redis key需要清理. 一. 由于Keys模糊匹配,请大家在实际运用的时候忽略掉.因为Keys会引发Redis锁,并且增加Redis的CPU占用,情况是很恶劣的, 官网说明如 ...

  9. 安装mysql8.0.17指南

    1.首先,下载社区版mysql(下载地址https://dev.mysql.com/downloads/mysql/) 2.下载之后,将文件解压到自己想要安装的目录(如,本人将解压文件放置g://my ...

  10. redis 数据类型之字典

    1.hset hset(name, key, value) # 参数:     # name,redis的name     # key,name对应的hash中的key     # value,nam ...