首页 > 编程语言 >Java Day 3

Java Day 3

时间:2023-02-15 09:11:05浏览次数:41  
标签:语句 Java 循环 条件 成立 执行 Day 表达式

流程控制语句结构

顺序结构

同一个方法中,从上往下,顺序执行

分支结构

条件判断

1、单分支条件判断

   语法:    

  if(条件表达式){
                     当条件表达式为true时,要执行的语句块
            }

(1)如果条件成立,就执行语句块,如果条件不成立,就不执行语句块

  (2){}可以省略,默认只带一句,建议不要省略

2、双分支分支条件判断

语法:

if(条件表达式){
  当条件表达式为true时,要执行的语句块1
}else{
    当条件表达式为false时,要执行的语句块2
}

(1)如果条件成立,就执行语句块1,如果条件不成立,就执行语句块2

(2){}可以省略,默认只带一句,建议不要省略

(3)else不可以单独存在的,必须有if配对

3、多分支条件判断

语法:

if(条件表达式1){
  当条件表达式1为true时,要执行的语句块1
}else if(条件表达式2){
    当条件表达式2为true时,要执行的语句块2
}else if(条件表达式3){
    当条件表达式3为true时,要执行的语句块3
}
.....
else{
    当以上所有条件表达式都不成立时,要执行的语句块n+1
}

(1)如果条件表达式1成立,执行语句块1,如果条件表达式1不成立才会去判断条件表达2,如果条件表达式2成立,那么执行语句块2,如果条件表达式2不成立,才会去看条件表达式3,依次类推。只有一个分支会被执行

(2){}可以省略,默认只带一句,建议不要省略

(3)else不可以单独存在的,必须有if配对

(4)多个条件表达式的范围

         1.互斥,没有交集,例如:

if(age>=0 && age<18){
        System.out.println("未成年");
}else if(age >=18 && age<60){
        System.out.println("成年");
}
//顺序可以互换

          2.包含,例如:

if(age<18){
        System.out.println("未成年");
}else if(age<60){
      System.out.println("成年");
}
//两个条件具有包含关系
//顺序不可以调整,范围小的在上面,范围大的在下面

4.嵌套

在任意一个语句块中,都还可以嵌套任意一种分支结构

当外部的条件成立的情况下,才会进行内部的条件判断,例如:

if(条件表达式1){
    if(条件表达式2){
        当条件表达式1成立,并且条件表达式2也成立时执行
    }else if(条件表达式3){
        当条件表达式1成立,并且条件表达式2不成立,条件表达式3成立时执行
    }else{
        当条件表达式1成立,并且条件表达式2不成立,条件表达式3不成立时执行
    }
}else{
    if(条件表达式4){
        当条件表达式1不成立,条件表达式4成立,执行
    }else if(条件表达式5){
        当条件表达式1不成立,条件表达式4不成立,条件表达式5成立,执行
    }else{
        当条件表达式1不成立,条件表达式4不成立,条件表达式5也不成立,执行
    }
}

选择结构

语法结构:

switch(表达式){
    case 常量值:
        语句块;
        【break;】
    case 常量值:
        语句块;
        【break;]
    ....
    【
    default:
        语句块;
        【break;】
    】
}

表达式类型要求:

基本数据类型:byte,short,char,int

引用数据类型:枚举(JDK1.5之后),String(JDK1.7之后)

执行过程:

入口:
(1)当与某个case匹配
(2)当与所有case都不匹配,如果有default,从default进入
出口:
(1)switch结束的}
(2)break;

其他要求:

(1)case后面必须是常量或常量表达式

(2)所有case后面的值必须不相同

(3)case后面常量值的类型与表达式的类型要一致

条件判断与选择结构的取舍

(1)凡是可以使用switch...case一定可以用if..else代替,凡是反过来不一定

(2)当所有的条件判断是“常量的等值判断”,那么建议使用switch...case,可读性更好,效率更高

循环结构

for循环

语法结构:

for(初始化表达式①;  循环条件②;  迭代表达式④){
    循环体语句(要重复的代码)③
}

执行的过程

(1)初始化表达式①

(2)循环条件的判断②

(3)如果条件成立,执行循环体语句③一次

(4)迭代表达式④

(5)回到(2),直到循环条件不成立,结束for循环

注意:

(1)for(;;)中两个分号不可以省略,但是表达式可以省略

(2)适用于起始条件和终止条件明确,循环次数比较明显的情况

while循环

语法结构:

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

执行过程:

(1)循环条件判断

(2)如果条件成立,执行循环体语句一次

(3)回到(1),直到循环条件不成立,结束while循环

注意:

(1)循环条件明显,次数不明显

(2)经常这样使用while(true)  和 break 结合

do while循环

语法结构:

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

执行过程:

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

(2)再判断循环条件,是否继续下一次

(3)如果循环条件成立,执行下一次循环体语句

(4)回到(2),直到循环条件不成立,结束do..while

注意:

(1)和while的最大区别,至少执行一次

foreach(增强for循环)

Java独有的循环结构,底层原理依然是for循环

语法结构:

for(元素类型 元素名称 : 遍历数组(集合)(或者能进行迭代的)){

}

当我们循环集合时采用foreach效率会有所提高,当我们循环数组时,二者效率相差不多,为方便删除数组元素,可以使用标准的for循环

嵌套

(1)无论哪种循环,循环中都可以嵌套任一种循环结构

执行过程:

外循环循环一次,内循环循环一轮

作用:重复执行某些代码

跳转、中断

1、break

可以适用于switch和循环,默认表示结束当层循环或switch

break 标签;表示结束指定的循环

    out_label:for(int i = 1; i<=5; i++){
            inner_label:while(true){
                System.out.println("请输入数字:");
                int num = input.nextInt();
                
                if(num>0){
                    positive ++;
                }else if(num<0){
                    negative++;
                }else{
                    //break;//结束的是while内层循环
                    break out_label;
                    //break inner_label;
                }
            }
    }

2.continue

只能用于循环,表示提前结束当层本次循环,进入下一次循环

3.return

表示结束当前方法

标签:语句,Java,循环,条件,成立,执行,Day,表达式
From: https://www.cnblogs.com/woniupa/p/17120848.html

相关文章

  • 读Java实战(第二版)笔记10_函数式编程的技巧
    1. 设计原则1.1. 将所有你愿意接受的作为参数的函数可能带来的副作用以文档的方式记录下来1.2. 最理想的情况下你接收的函数参数应该没有任何副作用1.3. 延迟数据......
  • 决战圣地玛丽乔亚Day11---零拷贝
    首先弄懂传统的I/O操作的过程:   首先,期间共发生了4次用户态与内核态的上下文切换,因为发生了两次系统调用,一次是 read() ,一次是 write(),每次系统调用都得先......
  • day09-2-验证以及国际化
    验证以及国际化1.概述(1)概述对于输入的数据(比如表单数据),进行必要的验证,并给出相应的提示信息对于验证表单数据,SpringMVC提供了很多使用的注解,这些注解由JSR303验证......
  • 第 5 课、java和rest-assured
                               packagecom.les.java.day01;importorg.apache.log4j.Logger;publicclass......
  • java基础之Object中的toString()方法
    toString()方法返回该对象的字符串表示。该字符串由类名、@、和次对象哈希码值的16进制表示组成,换句话说就是原理分析:全限定路径:包名+类名hascode()---》将对象在堆中......
  • 谷粒商城day01笔记
    mybatis目录mybatis特性mybatis日志使用1.insert2.update3.select4.delete5.性能分析插件5.条件构造器lombok注解mp是一个MyBatis的增强工具,在MyBatis的基础......
  • java基础之super
    super属性和方法指的是:父类super可以修饰属性,修饰方法。在子类的方法中,可以通过super属性,super方法的方式,显式的去调用父类的属性和犯法,在通常情况下,super.可以省略不写......
  • JavaConfig
    使用Java的方式配置spring我们现在完全不使用spring的xml配置了,全权交给Java来做!JavaConfig是spring的一个子项目,在spring4之后,它成为一个核心功能!1.实体类packageto......
  • 算法随想Day12【二叉树】| LC144、LC145、LC94-二叉树的前中后序遍历
    LC144、LC145、LC94-二叉树的前中后遍历二叉树递归遍历比较容易实现二叉树非递归遍历迭代法需要通过使用“栈”来模拟递归的过程前序遍历:放入root节点,弹出每个节点时......
  • day09-1-数据格式化
    数据格式化1.基本介绍说明:在我们提交数据(比如表单时),SpringMVC是怎样对提交的数据进行转换和处理的基本数据类型可以和字符串之间自动进行转换,比如:SpringMVC上下文中......