FlowControl 流程控制

什么是流程控制?

控制流程(也称为流程控制)是计算机运算领域的用语,意指在程序运行时,个别的指令(或是陈述、子程序)运行或求值的顺序。

不论是在声明式编程语言或是函数编程语言中,都有类似的概念。

基本的三种流程结构:

- 顺序结构,自上而下的一般结构

- 分支结构,执行特定条件则跳转顺序

- 循环结构,到达条件时重复执行,或者是中断执行

分支结构:

单if结构:

package cn.dai;

public class Variable {
public static void main(String[] args) { // 这个括号里面可以是布尔值,也可以是布尔表达式,用于逻辑判断
if (true){
System.out.println("if的条件结果位true,执行这个代码块");
} // 当有多个if时,程序两个if会分开执行处理 因为这两个是区分开的结构体
// 如果只有一行语句,可以不写大括号
if (0 > -1) System.out.println("这个if也为true,执行");
}
}

else

package cn.dai;

public class Variable {
public static void main(String[] args) {
if (false){
System.out.println("if的条件结果位true,执行这个代码块");
} else {
// else 默认 是if相反的结果,如果if条件不成立,则一定处理else
// else 就表示了除了if剩下的结果,所以没有条件要求
}
}
}

else if

package cn.dai;

public class Variable {
public static void main(String[] args) {
if (false){
System.out.println("if的条件结果位true,执行这个代码块");
} else if (true){
// 如果要判断的情况超过2个以上,可以使用else if增加分支
// if + else if + else 同属一个结构体内
// 多个else if中,只要最先位置的 if/ else if的条件成立 ,后面的else if都不再执行
}
}
}

swich-case

package cn.dai;

public class Variable {
public static void main(String[] args) { int option = 10; switch (option){
case 1: // case 1 表示具体值的一种情况,当括号内的值与case值相等,则开始执行下面的语句,反之不执行
System.out.println("case值1");
break; // 当语句完成后需要写上break;跳出switch判断体,如果不写break;程序会继续向下执行
case 2: // 我们可以将多种情况并列在一起让程序判断
case 3:
case 4:
System.out.println("是2,也是3,也是4的情况");
break;
default:
// default 表示默认的,表示除了switch结构体内所有case情况之外的情况,
// 当为最后一个情况时,可以不用再写break;语句跳出了,
// 因为所有情况都已经走完了,执行到大括号就会退出switch的结构体
System.out.println("一般情况之外");
}
}
}

关于switch和if - else 的使用场景

- if else 适用范围的判断

- switch 适用具体值的判断


循环结构:

在一个特定的条件成立下,重复的执行循环体内的代码块

无限循环While

package cn.dai;

public class Variable {
public static void main(String[] args) {
int round = 10; // 当while的条件成立时进入循环体,开始执行循环体内的代码块
// 直到while的条件不成立
while (round > 0){
round -- ;
}
}
}

预先执行循环 do - while

package cn.dai;

public class Variable {
public static void main(String[] args) {
int round = 10; do{
// 先执行代码块,再开始判断循环条件是否成立
// 无论while是否循环,do的代码块必须执行
round --;
}while (round > 0);
}
}

有限循环for

package cn.dai;

public class Variable {
public static void main(String[] args) { // int i 可以写在外面,起始条件就可以省略不写 // (起始条件 ; 循环条件 ; 迭代条件)
for (int i = 0; i < 10; i++) {
// 循环条件成立 代码块执行 ,迭代变量都在括号内写好了
}
}
}

嵌套循环

package cn.dai;

public class Variable {
public static void main(String[] args) {
for (int i = 0; i < 5 ; i++) { for (int j = 0; j < 4; j++) {
// 内循环遍历一遍,只是外循环的一次执行
// 外循环 5次 内循环 4次 共计遍历 5 * 4 = 20次
}
}
}
}

9 * 9 乘法表练习

package cn.dai;

public class Variable {
public static void main(String[] args) { for (int i = 1; i <= 9 ; i++) { for (int j = 1; j <= i; j++) { // j 跟随 i 遍历
System.out.print(j + " * " + i + " = " +(j * i)+"\t");
}
System.out.println(); // 用于换行
}
}
}

质数获取

package cn.dai;

public class Variable {
public static void main(String[] args) { boolean isPrime = true; // 判断是否是一个质数 for (int i = 2; i < 100; i++) { // 从2开始,上限100 2 - 100 的整数判断 for (int j = 2; j < i; j++) { // 遍历 i 的除数 j
if ( i % j == 0) isPrime = false; // 只要有一个能被整除就不算质数
}
if (isPrime) System.out.println(i); // 如果是直接打印 isPrime = true; // 重置判断
}
}
}

Break & Continue

- break 用于 跳出结构体 switch & 循环体

- continue 用于省略循环,程序执行到循环体内的continue直接跳到结尾处开始下一次循环

另外这是一种书签式的跳出,不建议学习,可读性差,仅了解即可

package cn.dai;

public class Variable {
public static void main(String[] args) { for (int i = 0; i < 100; i++) { bookmark1:
for (int j = 0; j < 50; j++) { for (int k = 0; k < 20; k++) {
System.out.println("k - " + k);
if (k == 10)break bookmark1;
}
}
System.out.println("i - " + i);
}
}
}

关于质数的二次改造

package cn.dai;

public class Variable {
public static void main(String[] args) { int count = 0 ; // 计数质数 // 设置标签记号
pass:for (int i = 2; i < 1000; i++) { for (int j = 2; j <= Math.sqrt(i) ; j++) {
if (i % j == 0) continue pass; // 如果能被整除直接跳至标记位置开始循环
}
System.out.println(i);
count ++;
}
System.out.println("统计个数 " + count);
}
}

【Java】FlowControl 流程控制的更多相关文章

  1. Java的流程控制和C++的异同

    Java的流程控制和C++基本相似 现将不同的地方总结一下,以便快速掌握. Java的特殊流程控制的特殊部分: 1.顺序结构  -- 没有区别 2.分之结构  -- 没有区别 3.循环结构 1> ...

  2. Java学习--流程控制

    Java学习 流程控制 用户交互Scanner Scanner对象 Java通过Scanner类获取用户的输入 基本语法: Scanner scanner = new Scanner(System.i ...

  3. Java基础-流程控制(04)

    在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的.也就是说程序的流程对运行结果有直接的影响.所以,我们必须清楚每条语句的执行流程.而且,很多时候我们要通过控制语句的执行顺序来实现我 ...

  4. Java程序流程控制之if-else if-else

    java基础之流程控制(一)    流程控制 Flow Control :       流程控制语句是编程语言中的核心之一.可以分为 分支语句.循环语句和跳转语句.        本讲内容包括分支语句 ...

  5. Java程序流程控制

    程序流程控制有 选择,循环,以及跳转结构 选择结构中无非就是 If 和 switch语句我两种都做了一些小案例 1. 利用Scanner库来获得控制台用户输入的数字与代码中定义的变量比较 packag ...

  6. 【Java】流程控制

    文章目录 流程控制 一.用户交互scanner 1.1 Scanner对象 1.2 Scanner进阶使用 二.顺序结构 三.选择结构 3.1 if单选择结构 3.2 if双选择结构 3.3 if多选 ...

  7. java基础 流程控制和条件语句,循环语句

    顺序结构 程序的顺序结构: 如果代码里没有流程控制,程序是按照书写的格式从上而下一行一行执行的, 一条语句执行完之后继续执行下一条语句,中间没有判断和跳转,直到程序的结束. if语句 if语句使用bo ...

  8. java 基础 流程控制

    鄙人不才,基础不好,趁着闲时简单学习一下,仅作学习分享,如有不正确地方还请各位看客不吝指出. Java流程主要可以分为: 顺序(可以按照正常顺序一步步往下运行的) 选择(三元操作符[?:];if el ...

  9. 【Java】流程控制 - 顺序结构、 选择(分支)结构(单分支、双分支、多分支、嵌套)、循环结构(for、while、do...while)、跳转语句(break、continue)

    流程控制语句结构 文章目录 流程控制语句结构 一. 顺序结构 1. 输出语句 2. 输入语句 3.code 二.复合语句 三. 分支结构 1. 条件判断 1.单分支结构 2.双分支结构 3.多分支结构 ...

随机推荐

  1. Comparing Data-Independent Acquisition and Parallel Reaction Monitoring in Their Abilities To Differentiate High-Density Lipoprotein Subclasses 比较DIA和PRM区分高密度脂蛋白亚类的能力 (解读人:陈凌云)

    文献名:Comparing Data-Independent Acquisition and Parallel Reaction Monitoring in Their Abilities To Di ...

  2. 免费IP归属地查询接口汇总

    目前做一个项目,需要判断是国内还是国外的IP,具体要求为接口稳定,速度快,免费,不异常,所以我整理了优质的接口供大家筛选. IP归属地查询API 一,淘宝API接口 http://ip.taobao. ...

  3. HDOJ 1301最小生成树的Kruskal算法

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1301 将结点的字符信息处理成点信息即可,代码如下: #include<bits/stdc++.h ...

  4. sql数据库(更新)

    安装postgreSQL,遇到的bug:不要选择默认路径,安装到program files,否则连接数据库的时候会出现问题 如图显示数据库连接成功. 1.创建数据库——执行创建数据库的SQL 语句 C ...

  5. html之锚点

    我命由我不由天 豆瓣:哪吒之魔童降世 哪吒之魔童降世简述 更新描述或海报 导演: 饺子 编剧: 饺子 / 易巧 / 魏芸芸 主演: 吕艳婷 / 囧森瑟夫 / 瀚墨 / 陈浩 / 绿绮 / 更多... ...

  6. Ubuntu系统在Anaconda中安装Python3.6的虚拟环境

    原因:Anaconda的python版本是3.7的,TensorFlow尚不支持此版本,于是我们创建一个Python的虚拟环境以支持TensorFlow 创建tf环境 conda create --n ...

  7. ConcurrentHashMap红黑树的实现

    红黑树 红黑树是一种特殊的二叉树,主要用它存储有序的数据,提供高效的数据检索,时间复杂度为O(lgn),每个节点都有一个标识位表示颜色,红色或黑色,有如下5种特性:1.每个节点要么红色,要么是黑色:2 ...

  8. Javascript/Jquery实现日期前一天后一天

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/stri ...

  9. Unity引擎入门——制作第一个2D游戏(2)角色移动与动画

    在上一节的内容里,我们已经创建出了一个主角,也搭建了一个简单的场景. 传送门:https://www.cnblogs.com/zny0222/p/12653088.html 既然有了主角,要怎样才能让 ...

  10. Java 运行时数据区

    写在前面 本文描述的有关于 JVM 的运行时数据区是基于 HotSpot 虚拟机. 概述 JVM 在执行 Java 程序的过程中会把它所管理的内存划分为若干个不同的数据区域.这些区域都有各自的用途,以 ...