详解Java中的三种流程控制语句

目录
  • 顺序语句
  • 选择语句
    • if else的嵌套
    • switch case default
  • 循环语句
    • for
    • for in
    • while
    • do while
    • break continue

顺序语句

顺序顾名思义就是程序自上而下执行

public class User {
    public static void main(String[] args) {
        String name = "hacker";
        int age = 18;
        String happy = "学习Java";
        System.out.println("姓名:"+name);
        System.out.println("年龄:"+age);
        System.out.println("爱好:"+happy);
    }
}

运行结果如下:

选择语句

if else
if (表达式){
    语句块1
}
else{
    语句块2
}

先判断表达式,当表达式的值为true时,执行语句块1,否则,执行语句块2

举个栗子

从控制台输入成绩,如果成绩大于或等于60,输出成绩及格,否则输出成绩不及格

import java.util.Scanner;

public class User {
    public static void main(String[] args) {
        var sc = new Scanner(System.in);
        System.out.print("请输入成绩:");
        float score = sc.nextFloat();
        if(score>=60){//如果成绩>=60,成绩及格
            System.out.printf("成绩及格:%3.1f", score);
        }
        else {//否则成绩不及格
            System.out.printf("成绩不及格:%3.1f",  score);
        }
    }
}

运行结果如下:

if else的嵌套

需要对多个条件进行判断就需要用到if else的嵌套

基本格式如下:

if (表达式1){
    语句块1
}else if(表达式2){
    语句块2
}
else{
    语句块3
}

先判断表达式1,当表达式1成立执行语句块1,不成立判断表达式2,若表达式2成立执行语句块2,不成立执行语句块3

举个栗子

从控制台输入成绩,成绩小于60时成绩不及格,当成绩在60~90之间时成绩及格,当成绩大于90时成绩优秀

import java.util.Scanner;

public class User {
    public static void main(String[] args) {
        var sc = new Scanner(System.in);//
        System.out.print("请输入成绩:");
        float score = sc.nextFloat();
        if(score<60){//如果成绩<60,成绩不及格
            System.out.printf("成绩不及格:%3.1f", score);
        }else if(score>=60&&score<90){//如果60<=score<90,成绩及格
            System.out.printf("成绩及格:%3.1f", score);
        }
        else {//否则成绩优秀
            System.out.printf("成绩优秀:%3.1f",  score);
        }
    }
}

运行结果如下:

switch case default

先判断switch后面括号里表达式的值,然后拿着值去匹配case语句,若匹配到了执行case语句对应的语句块。执行后若遇到break则退出switch语句,如果没有break则继续执行下面的case语句块,直到遇到break退出switch语句

switch(表达式)
{
case 值1:语句块1:break;
case 值2:语句块2:break;
case 值3:语句块3:break;
default:语句块4

import java.util.Scanner;

public class User {
    public static void main(String[] args) {
        var sc = new Scanner(System.in);
        System.out.print("输入1,2,3中其一数字:");
        int number = sc.nextInt();
        switch(number) {
            case 1:
                System.out.print("hello");
                break;
            case 2:
                System.out.print("Java");
                break;
            case 3:
                System.out.print("world");
            default:
                System.out.print("输入有误,请重新输入");
        }
    }
}

运行结果如下:

循环语句

for

for(表达式1;表达式2;表达式3)
    {循环体}

表达式1的值给循环变量赋初始值;表达式2是判断条件,表达式3是改变循环变量的值

执行过程如下:

先计算表达式1的值,再计算表达式2的值。若为真执行循环体,若为假,直接跳出循环,然后计算表达式3的值;再次计算表达式2的值,若为真,再执行循环体,再计算表达式3的值,直到表达式2的值为假,循环结束,执行循环下面的语句

举个栗子

循环打印出1到10

public class User {
    public static void main(String[] args) {
        for (int i = 1; i <= 10; i++) {
            System.out.println(i);
        }
    }
}

运行结果如下:

for in

从数组中挨个取值

public class User {
    public static void main(String[] args) {
        int[] a = {1, 2, 3, 4, 5, 6};
        for (int i : a) {
            System.out.println(i);
        }
    }
}

运行结果如下:

while

while(表达式){
    循环体
}

public class User {
    public static void main(String[] args) {
        int i = 0;
        while (i < 10) {
            i++;
            System.out.println(i);
        }
    }
}

运行结果如下:

do while

do while和while的区别

do while会先执行循环体再判断条件,while先判断条件再执行循环体

do while最少执行一次,while可以一次都不执行

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

public class User {
    public static void main(String[] args) {
        int i = 0;
        do {//先执行循环体,即使i++不满足条件也会执行
            i++;
            System.out.print(i);
        } while (i < 0);
    }
}

运行结果如下:

break continue

break 终止循环

continue 跳出当前循环,进入下一次循环

public class User {
    public static void main(String[] args) {
        for (int i = 0;i <= 10;i++){
            if( i == 2){
                break; //break当i=2时直接终止循环
            }
            System.out.println(i);
        }
    }
}

当循环到i=2时遇到break直接终止循环,不继续执行

运行结果如下:

0
1

public class User {
    public static void main(String[] args) {
        for (int i = 0;i <= 10;i++){
            if( i == 2){
                continue; //continue当i=2时跳出本次循环,进入下一次循环(不打印2)
            }
            System.out.println(i);
        }
    }
}

当循环到i=2时遇到continue跳过本次循环继续下一轮循环(i=2不执行)

继续执行下面的循环直到for语句条件不满足终止循环

运行结果如下:

0
1
3
4
5
6
7
8
9
10

到此这篇关于详解Java中的三种流程控制语句的文章就介绍到这了,更多相关Java流程控制语句内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Java常用流程控制语句实现原理解析

    一.判断语句 最常用的顺序结构只能顺序执行,并不能进行判断和选择.于是便有了下面两种分支结构 if语句 switch语句 1. if语句 一个if语句包含一个布尔表达式和一条或多条语句. 1.1 判断语句1--if if语句的第一种格式 if(关系表达式){ 语句体; } 执行流程 首先判断关系表达式结果是true还是false 如果是true就执行语句体 如果是false就不执行语句体 1.2 判断语句2--if...else if语句的第二种格式:if...else if(关系表达式) {

  • Java中控制流程语句的深入讲解

    目录 前言 if-then if-then-else switch 使用 String while do-while for break continue return 总结 前言 流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定功能的小逻辑模块. 控制语句分为三类:顺序.选择和循环. 顺序结构:代表"先执行a,再执行b"的逻辑. 选择结构:代表"如果-,则-"的逻辑. 循环结构:代表"如果-,则重复执行-"的逻辑.

  • 详解JAVA流程控制语句

    第一节 JAVA条件语句之if语句 1.单独的if语句,语法:if(条件){条件成立时执行的代码}:如果if成立时执行的语句只有一条,可以省略大括号,如果是多句不可省略,比如某些方法if(条件),return;如果满足此条件跳出方法. 2.条件语句之if-else,if(条件的布尔表达算式){符合条件则执行的代码}else{不符合执行的代码}: 3.多重if语句,if(条件1){代码块1}else if(条件2){代码块2}else{代码3}:在条件 1 不满足的情况下,才会进行条件 2 的判断

  • 深入分析JAVA流程控制语句

    复合语句 Java的复合语句是以整个区块为单位的语句,由{}以及{}内包含的内容组成 对于复合语句来说,复合语句创建了一个局部变量的作用域,该作用域中变量可以创建并使用,在作用域外使用则会报错,找不到创建的变量 条件控制 单分支语句 if条件语句 语法: if(条件表达式){} int a = 5; int b = 6; if(a == b){ System.out.println("a与b相等"); } 双分支语句 if...else语句 if(条件表达式){结果一}else{结果二

  • 基于java中的流程控制语句总结(必看篇)

    程序的结构分类: 顺序结构:按照写代码的顺序 一次执行 选择结构:根据条件的不同有选择的执行不同的代码 循环结构:在一定条件下 反复执行某一片代码 选择结构: 也叫分支结构 根据条件的不同,有选择的执行某一片代码 ,Java提供了两种 if结构 switch结构 if分为三种格式: if的第一种格式 if(条件){ 语句块 } 执行流程: 先判断条件, 如果为真 则语句块执行,否则 语句块不执行 代码演示: public static void main(String[] args) { Sys

  • Java流程控制语句之If选择结构

    一.选择结构大纲 if单选择结构 if双选择结构 if多选择结构 嵌套的if结构 switch多选择结构 二.if单选择结构 我们很多时候需要去判断一个东西是否可行,然后我们才去执行,这样一个过程在程序中用if语句来表示 语法: if(布尔表达式) { //如果布尔表达式为true将执行的语句 } 三.if双选择结构 那现在有个需求,公司要收购一个软件,成功了,给人支付100万元,失败了,自己找人开发.这样的需求用一个if就搞不定了,我们需要有两个判断,需要一个双选择结构,所以就有了if-els

  • 详解Java中的三种流程控制语句

    目录 顺序语句 选择语句 if else的嵌套 switch case default 循环语句 for for in while do while break continue 顺序语句 顺序顾名思义就是程序自上而下执行 public class User { public static void main(String[] args) { String name = "hacker"; int age = 18; String happy = "学习Java";

  • 详解Java 中的三种代理模式

    代理模式 代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能. 这里使用到编程中的一个思想:不要随意去修改别人已经写好的代码或者方法,如果需改修改,可以通过代理的方式来扩展该方法. 举个例子来说明代理的作用:假设我们想邀请一位明星,那么并不是直接连接明星,而是联系明星的经纪人,来达到同样的目的.明星就是一个目标对象,他只要负责活动中的节目,而其他琐碎的事情就交给他的代理

  • 详解java中的四种代码块

    在java中用{}括起来的称为代码块,代码块可分为以下四种: 一.简介 1.普通代码块: 类中方法的方法体 2.构造代码块: 构造块会在创建对象时被调用,每次创建时都会被调用,优先于类构造函数执行. 3.静态代码块: 用static{}包裹起来的代码片段,只会执行一次.静态代码块优先于构造块执行. 4.同步代码块: 使用synchronized(){}包裹起来的代码块,在多线程环境下,对共享数据的读写操作是需要互斥进行的,否则会导致数据的不一致性.同步代码块需要写在方法中. 二.静态代码块和构造

  • 详解python中的三种命令行模块(sys.argv,argparse,click)

    Python作为一门脚本语言,经常作为脚本接受命令行传入参数,Python接受命令行参数大概有三种方式.因为在日常工作场景会经常使用到,这里对这几种方式进行总结. 命令行参数模块 这里命令行参数模块平时工作中用到最多就是这三种模块:sys.argv,argparse,click.sys.argv和argparse都是内置模块,click则是第三方模块. sys.argv模块(内置模块) 先看一个简单的示例: #!/usr/bin/python import sys def hello(name,

  • 详解C++ 中的三种继承方式

    public 方式继承 基类成员对派生类的可见性对派生类来说,基类的公有成员和保护成员可见,基类的公有成员和保护成员作为派生类的成员时,它们都保持原有的状态;基类的私有成员不可见,基类的私有成员仍然是私有的,派生类不可访问基类中的私有成员. 基类成员对派生类对象的可见性对派生类对象来说,基类的公有成员是可见的,其他成员是不可见的. 所以,在公有继承时,派生类的对象可以访问基类中的公有成员,派生类的成员函数可以访问基类中的公有成员和保护成员. 简单来说,派生类能访问基类的public, prote

  • 详解Java中的八种单例创建方式

    目录 定义 使用场景 单例模式八种方式 饿汉式(静态常量) 饿汉式(静态代码块) 懒汉式(线程不安全) 懒汉式(同步方法) 懒汉式(同步代码块) 双重检查锁方式 静态内部类方式 枚举方式 总结 定义 单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法(静态方法) 使用场景 对于一些需要频繁创建销毁的对象 重量级的对象 经常使用到的对象 工具类对象 数据源 session 单例模式八种方式 饿汉式(静态常量) 代码 /**

  • 详解java中的6种单例写法及优缺点

    在java中,单例有很多种写法,面试时,手写代码环节,除了写算法题,有时候也会让手写单例模式,这里记录一下单例的几种写法和优缺点. 1.初级写法 2.加锁 3.饿汉式 4.懒汉式 5.双锁检验 6.内部类 1.初级写法 package com.java4all.test6; /** * Author: yunqing * Date: 2018/8/13 * Description:单例模式 -- 初级 */ public class Singleton { private static Sing

  • 详解ES6中的三种异步解决方案

    前置知识准备 Generator 函数 执行会返回一个迭代器(Iterator), 在迭代器上可以调用  next() 方法, 执行下一个 yield  或 return 调用  next() 方法,会返回一个对象 {value: res, done: false} , value 的值 为 yield 之后表达式的值,done 的值 表示迭代器,是否已经执行完毕(最后一个yield  或 return ) next() 方法,可以传入一个值,做为前一个yield 表达式的返回值 有了这些知识,

  • 详解Java中的流程控制

    1.分支结构的概念 当需要进行条件判断并做出选择时,使用分支结构 2.if分支结构 格式: if(条件表达式){ 语句块; } package com.lagou.Day04; import java.util.Scanner; /** * 编程使用if分支结构模拟网吧上网的过程 */ public class Demo01 { public static void main(String[] args) { //1.提示用户输入年龄信息并使用变量记录 System.out.println("请

  • 详解Java中数组判断元素存在几种方式比较

    1. 通过将数组转换成List,然后使用List中的contains进行判断其是否存在 public static boolean useList(String[] arr,String containValue){ return Arrays.asList(arr).contains(containValue); } 需要注意的是Arrays.asList这个方法中转换的List并不是java.util.ArrayList而是java.util.Arrays.ArrayList,其中java.

随机推荐