Java 逻辑控制全面详解

目录
  • 1 顺序结构
  • 2 分支结构
    • 2.1 if语句
      • 基本语法形式1:
      • 示例代码1:
      • 基本语法形式2:
      • 示例代码2:
      • 基本语法形式3:
      • 示例代码3:
      • 注意事项1:
      • 注意事项2:
    • 2.2 switch语句
      • 基本语法格式
      • 示例代码:
  • 3 循环结构
    • 3.1while循环
      • 基本语法格式:
      • 示例代码:输出1~10
    • 3.2 break语句
    • 3.3 continue语句
    • 3.4 for循环
      • 基本语法格式:
      • for循环执行的顺序是:
      • 示例代码:
    • 3.5 do while 循环
      • 基本语法格式:
      • do whiie 循环的执行顺序
      • 示例代码1:
      • 示例代码2:
  • 4 逻辑控制综合案例
    • 4.1 输出1000~1200之间所有的闰年
    • 4.2 计算1~100之间9出现的次数

1 顺序结构

顺序结构比较简单,就是代码一行一行的执行,本节之前写的所有代码都是顺序结构。

例如:

public static void main(String[] args) {
        int a=10;
        System.out.println(a);
        System.out.println("hhhh");
        double f=10.732;
        System.out.println(f);

2 分支结构

2.1 if语句

基本语法形式1:

if(布尔表达式){

//条件满足时的要执行的语句

}

示例代码1:

public static void main(String[] args) {
       int a=10;
       int b=20;
       if(a<b){
           System.out.println(a);//a是10 b是20 a<b条件成立执行该语句
       }
       if(a>b){
           System.out.println(b);//a是10 b是20 a>b条件不成立不执行该语句
       }

基本语法形式2:

if(布尔表达式){

//条件成立是执行的语句

}

else{

//条件不成立时执行的语句

}

示例代码2:

public static void main(String[] args) {
        int a=10;
        int b=20;
        if(a>b){
            System.out.println(a);//a是10 b是20 a>b条件不成立不执行该语句
        }
        else{
            System.out.println(b);//a是10 b是20 a>b条件成立执行该语句

        }
    }

基本语法形式3:

if(布尔表达式1){

//表达式1为true,执行的代码

}

else if(布尔表达式2){

//表达式2为true,执行的代码

}

else{

//表达式1和表达式2都为falses,执行的代码

}

示例代码3:

public static void main(String[] args) {
        int a=10;
        int b=10;
        if(a>b){
            System.out.println(a);//表达式1不成立,该语句不执行
        }
        else if(b>a){
            System.out.println(b);//表达式2不成立。该语句不执行
        }
        else{

            System.out.print("a=b=");//表达式1和表达式2都不成立,该语句执行
            System.out.println(a);//注意:表达式成立时执行的语句可以是多条
        }
    }

注意事项1:

if语句可以嵌套使用,当if(布尔表达式)中的表达式成立时,就会执行对应的语句块 ,在这个对应的语句块中也可以使用if语句

例如:找出三个数中最大的数

public static void main(String[] args) {
        int a=50;
        int b=70;
        int c=20;
        System.out.print("最大的数是");
        if(a>b){
            //a>b不成立,所以不执行改语句块
            if(c>a){

                System.out.println(c);
            }
            else{
                System.out.println(a);
            }
        }
        else{
            //a>b不成立,所以执行该语句块
            if(c>b){
                System.out.println(c);//c>b不成立,不执行该语句
            }
            else{
                System.out.println(b);//c>b不成立,所以执行改语句
            }
        }
    }

注意事项2:

if语句中的布尔表达式成立时,会执行if所对应的语句块。如果不加“{}”时,就会执行紧随其后的一条语句

例如:

public static void main(String[] args) {
        int a=10;
        int b=20;
        if(a>b)
            System.out.println(a);//此时if条件不成立,所以不会执行这条语句
            System.out.println(b);//虽然if条件不成立,但是这条语句已经超出了if
                                  //语句块,所以这条语句还会执行
    }

2.2 switch语句

基本语法格式

switch ( 整数 | 枚举 | 字符 | 字符串 ){
case 内容 1 : {
内容满足时执行语句 ;
[ break ;]
}
case 内容 2 : {
内容满足时执行语句 ;
[ break ;]
}
...
default :{
内容都不满足时执行语句 ;
[ break ;]
}

示例代码:

 public static void main(String[] args) {
        int day=5;
        switch (day){
            case 1:
                System.out.println("星期一");
                break;
            case 2:
                System.out.println("星期二");
                break;
            case 3:
                System.out.println("星期三");
                break;
            case 4:
                System.out.println("星期四");
                break;
            case 5:
                System.out.println("星期五");
                break;
            case 6:
                System.out.println("星期六");
                break;
            case 7:
                System.out.println("星期天");
                break;
            default:
                System.out.println("输入错误");
                break;
        }
    }

根据 switch 中值的不同 , 会执行对应的 case 语句 . 遇到 break 就会结束该 case 语句 . 如果 switch 中的值没有匹配的 case, 就会执行 default 中的语句 . 我们建议一个 switch 语句最好都要带上 default.

3 循环结构

3.1while循环

基本语法格式:

while(布尔表达式){

//要执行的语句块;

}

当布尔表达式为true,循环执行要执行的语句块,否则结束循环。

示例代码:输出1~10

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

注意事项:

  • 1. 和 if 类似, while 下面的语句可以不写 { } , 但是不写的时候只能支持一条语句. 建议还是加上 { }
  • 2. 和 if 类似, while 后面的 { 建议和 while 写在同一行.
  • 3. 和 if 类似, while 后面不要多写 分号, 否则可能导致循环不能正确执行。

3.2 break语句

break 的功能是让循环提前结束 .

例如:找出1~10中第一个3的倍数

public static void main(String[] args) {
        int  i=1;
        while(i<=10){
            if(i%3==0){
                System.out.println(i);
                break;//遇到break语句,循环结束
            }
            i++;
        }
    }

3.3 continue语句

continue 的功能是跳过这次循环 , 立即进入下次循环 .

例如:找出1~10之间所有的偶数

public static void main(String[] args) {
        int i=1;
        while(i<=10){
            if(i%2!=0){
                i++;
                continue;//遇到continue语句,会直接进入下一次循环,不会执行后面的语句
            }
            System.out.println(i);
            i++;

        }
    }

3.4 for循环

基本语法格式:

for(表达式1;布尔表达式2;表达式3){

//循执行的语句块

}

for循环执行的顺序是:

首次循环:首先执行表达式1,再执行布尔表达式2,然后执行循环体;最后执行表达式3。

其余循环: 首先执行布尔表达式2,然后执行循环体,最后执行表达式3。

结束循环: 布尔表达式的值为false.

示例代码:

输出1~10之间的所有数

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

注意事项:

  • 1:break和continue对for循环同样适用。
  • 2:和 if 类似 , for 下面的语句可以不写 { } , 但是不写的时候只能支持一条语句 . 建议还是加上 { }
  • 3: 和 if 类似 , for 后面的 { 建议和 while 写在同一行 .
  • 4:和 if 类似 , for 后面不要多写 分号 , 否则可能导致循环不能正确执行

3.5 do while 循环

基本语法格式:

do{

//循环执行的语句
}while(布尔表达式);

do whiie 循环的执行顺序

首先执行循环语句,然后再判断布尔表达式是后为true.

因此,无论布尔表达式的值是否是true,第一次循环都会执行。

示例代码1:

打印1~10

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

示例代码2:

演示布尔表达式不成立,循环语句执行一次

public static void main(String[] args) {
        int  i=0;
        do{
            System.out.println(i);
        }while (i>0);//i=0 i>0表达式的值为false
    }

4 逻辑控制综合案例

4.1 输出1000~1200之间所有的闰年

 public static void main2(String[] args) {

        for (int i = 1000; i <=1200 ; i++) {
            if(i%100!=0&&i%4==0||i*400==0)
            {
                System.out.println(i);
            }
        }
    }

4.2 计算1~100之间9出现的次数

public static void main(String[] args) {
        int i=1;
        int num=0;
        while(i<=100){
            int j=i;
            /*
               求出一个数各个位上的数字
               循环执行以下操作
               第一步:用这个数取余10的到个数
               第二步:这个数除等10
               第三步:判断这个数是不是0
             */
            while (j>0){
                if(j%10==9) {
                    num++;
                }
                j=j/10;
            }
            i++;
        }
        System.out.println(num);//9 19 29 39 49 59 69 79 89 中各出现一次9
                                //90 91 92 93 94 95 96 97 98中各出现一次9
                                //99中出现两次9   总共20个9
}

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

(0)

相关推荐

  • Java中的逻辑结构详解

    Java中的逻辑结构 逻辑结构 Java中的逻辑结构 顺序结构分支结构循环结构 顺序结构 顺序结构顾名思义,就是按照代码的顺序依次往下执行,这个不必多讲 分支结构 分支结构又可以细分为两个: if-else-这两个单词相信都认识,翻译成中文就是我们平时所说的如果-就-,那么在Java中该怎么用呢: ①:if else: 它的基本语法结构如下: if(判断条件){ 语句1: }else{ 语句2: 当判断条件为真的时候,执行语句1,否则执行语句2 示例: import java.util.*; p

  • Java基础语法:逻辑控制

    目录 一.逻辑控制语句 1. 顺序结构 2. 分支结构 2.1 if 语句 2.2 switch 语句 3. 循环结构 3.1 while 循环 3.2 break 3.3 continue 3.4 for 循环 3.5 do while 循环 二.输入输出方式 1. 输出到控制台 1.基本语法 2.代码示例 3.格式化输出表(随用随查) 2. 从键盘输入 1.读入一个字符(不推荐使用) 2.使用 Scanner 读取字符/字符串/整数/浮点数/布尔值 三.猜数字游戏 1.首先我们要知道在 Ja

  • Java程序的逻辑控制和方法详解

    一.顺序结构 从上往下执行,非常简单,不做过多赘述. 二.分支结构 1.if语句 与c语言不同的是,java的if(布尔表达式)必须是布尔表达式 eg:判断某一年是否是闰年 public static void main(String[] args) { Scanner scan = new Scanner(System.in); int year = scan.nextInt(); if((year%4==0 && year%100 !=10)||(year%400==0)) Syste

  • Java中的逻辑控制语句详解

    目录 顺序结构 分支结构 if 语句 基本语法格式: 举例: 注意事项: switch 语句 基本语法格式: 执行流程: 注意事项: 不能做switch参数的类型有哪些? 循环结构 while 循环 基本语法格式: while 循环输入 注意事项: break 代码示例: continue for 循环 基本语法格式: 执行顺序: 代码示例: do while 循环 基本语法格式: 代码示例: 总结 顺序结构 我们之前写的大多代码都是顺序结构的,即按照代码的顺序一行一行的执行 代码1 Syste

  • 关于java命令的本质逻辑揭秘过程

    前言 在日常编码中,有了ide的支持,我们已经很少直接在命令行中直接执行java XXX命令去启动一个项目了.然而我们有没有想过,一个简单的java命令背后究竟做了些什么事情?让我们看下下面几个简单的问题 1.java命令之后可以跟很多参数,那么这些参数是如何被解析的?为何-version会返回版本号而如果紧跟一个类名则会启动jvm? 2.为何我们自己定义的入口方法必须满足如下的签名?是否还有其他可能性? public static void main(String[] args) { } 3.

  • Java 基础语法中的逻辑控制

    目录 Java 基础语法中的逻辑控制 一.逻辑控制语句 1. 顺序结构 2. 分支结构 3. 循环结构 二.输入输出方式 1. 输出到控制台 2. 从键盘输入 三.猜数字游戏 四.总结 Java 基础语法中的逻辑控制 一.逻辑控制语句 1. 顺序结构 像我们写的代码,执行时会按照从上到下一行一行的执行.这z就是顺序结构,不同的顺序,结果可能就不一样.如 System.out.println(1) System.out.println(2) System.out.println(3) 该代码结果为

  • Java 逻辑控制全面详解

    目录 1 顺序结构 2 分支结构 2.1 if语句 基本语法形式1: 示例代码1: 基本语法形式2: 示例代码2: 基本语法形式3: 示例代码3: 注意事项1: 注意事项2: 2.2 switch语句 基本语法格式 示例代码: 3 循环结构 3.1while循环 基本语法格式: 示例代码:输出1~10 3.2 break语句 3.3 continue语句 3.4 for循环 基本语法格式: for循环执行的顺序是: 示例代码: 3.5 do while 循环 基本语法格式: do whiie 循

  • Java 数据库连接池详解及简单实例

    Java 数据库连接池详解 数据库连接池的原理是: 连接池基本的思想是在系统初始化的时候,将数据库连接作为对象存储在内存中,当用户需要访问数据库时,并非建立一个新的连接,而是从连接池中取出一个已建立的空闲连接对象.使用完毕后,用户也并非将连接关闭,而是将连接放回连接池中,以供下一个请求访问使用.而连接的建立.断开都由连接池自身来管理.同时,还可以通过设置连接池的参数来控制连接池中的初始连接数.连接的上下限数以及每个连接的最大使用次数.最大空闲时间等等.也可以通过其自身的管理机制来监视数据库连接的

  • Java 回调函数详解及使用

    Java 回调函数详解 前言: C语言中回调函数解释: 回调函数(Callback Function)是怎样一种函数呢? 函数是用来被调用的,我们调用函数的方法有两种: 直接调用:在函数A的函数体里通过书写函数B的函数名来调用之,使内存中对应函数B的代码得以执行.这里,A称为"主叫函数"(Caller),B称为"被叫函数"(Callee). 间接调用:在函数A的函数体里并不出现函数B的函数名,而是使用指向函数B的函数指针p来使内存中属于函数B的代码片断得以执行--听

  • Java 多线程实例详解(三)

    本文主要接着前面多线程的两篇文章总结Java多线程中的线程安全问题. 一.一个典型的Java线程安全例子 public class ThreadTest { public static void main(String[] args) { Account account = new Account("123456", 1000); DrawMoneyRunnable drawMoneyRunnable = new DrawMoneyRunnable(account, 700); Thr

  • java IO 字节流详解及实例代码

    java IO 字节流详解 1.         如何理解输入输出流? 这是我当初在学习Java IO这一块很难理解的一块,输入输出流我们可必须以一个为参照物:我们以内存为参照物,凡是写入内存的我们叫输入流,从内存中写出的我们叫输出流.看下面的示例图 有了这样的一个概念对于我们再学习Java中的IO流我相信就会变得特别简单了. 2.         再看流的分类 流的分类,Java的流分类比较丰富,刚接触的人看了后会感觉很晕.流分类的方式很多: 1.按照输入的方向分,输入流和输出流,输入输出的参

  • java LinkedList类详解及实例代码

    java  LinkedList类详解 LinkedList的特有功能 A:添加功能 public void addFirst(Object e); public void addLast(Object e); B:特有功能 public Object getFirst(); public Object getLast(); C:删除功能 public Object removeFirst(); public Object removeLast(); 实例代码: import java.util

  • Java构造方法实例详解(动力节点java学院整理)

    构造函数是一种特殊的函数.其主要功能是用来在创建对象时初始化对象, 即为v对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中.构造函数与类名相同,可重载多个不同的构造函数.在JAVA语言中,构造函数与C++语言中的构造函数相同,JAVA语言中普遍称之为构造方法. 使用构造器时需要记住: 1.构造器必须与类同名(如果一个源文件中有多个类,那么构造器必须与公共类同名) 2.每个类可以有一个以上的构造器 3.构造器可以有0个.1个或1个以上的参数 4.构造器没有返回值 5.构造器总是伴随

  • Java中双向链表详解及实例

    Java中双向链表详解及实例 写在前面: 双向链表是一种对称结构,它克服了单链表上指针单向性的缺点,其中每一个节点即可向前引用,也可向后引用,这样可以更方便的插入.删除数据元素. 由于双向链表需要同时维护两个方向的指针,因此添加节点.删除节点时指针维护成本更大:但双向链表具有两个方向的指针,因此可以向两个方向搜索节点,因此双向链表在搜索节点.删除指定索引处节点时具有较好的性能. Java语言实现双向链表: package com.ietree.basic.datastructure.dublin

  • java 可变参数详解及实例

    java 可变参数详解 可变参数(Varargs)使程序员可以声明一个接受可变数目参数的方法. 可变参数也是JDK5.0中出现的新特性. 可变参数本质上就是一个数组,对于某个声明了可变参数的方法来说,我们既可以传递离散的值,也可以传递数组对象. 但如果将方法中的参数定义为数组,那么只能传递数组对象而不能传递离散的值. 注意,可变参数必须是方法声明中的最后一个参数.一个方法不可能具有两个或两个以上的可变参数. 附上例子程序: public class TestVarargs { private s

  • Java instanceof用法详解及实例代码

    Java instanceof用法详解 Java 中的instanceof 运算符是用来在运行时指出对象是否是特定类的一个实例.instanceof通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例. 用法: result = object instanceof class 参数: Result:布尔类型. Object:必选项.任意对象表达式. Class:必选项.任意已定义的对象类. 说明: 如果 object 是 class 的一个实例,则 instanceof 运

随机推荐