首页 > 编程语言 >JavaSE--控制语句

JavaSE--控制语句

时间:2023-08-09 09:24:11浏览次数:55  
标签:语句 java -- System JavaSE out 表达式 布尔

一、控制语句

1、控制语句分类

  • 顺序结构
    •   按照顺序来执行程序
  • 分支结构/选择语句
    •   单分支if、多分支switch
  • 循环结构
    •   for、while、do while

2、分支结构

单分支 if
    语法格式:
    第一种写法:
        if(布尔表达式){
            java语句;
        }
        这里一个大括号叫做一个分支
    if执行原理:如果布尔表达式的结果为true,则执行大括号中的程序,否则不执行
    第二种写法:
        if(布尔表达式){// 分支1
            java语句;
        }else{        // 分支2
            java语句;
        }
    执行原理:如果布尔表达式的结果为true,则执行分支1,否则执行分支2
    第三种写法:
        if(布尔表达式){// 分支1
            java语句;
        }else if(布尔表达式){// 分支2
            java语句;
        }else if(布尔表达式){
            java;
        }......
    第四种种写法:
        if(布尔表达式){// 分支1
            java语句;
        }else if(布尔表达式){// 分支2
            java语句;
        }else if(布尔表达式){
            java;
        }else{
        }
    注意:对于if语句来说,只能有1个分支执行,不可能有两个或更多个分支执行
    
// 分支中只有一条java语句的时候{}可以省略
if(flag) System.out.print("1"); else System.out.print("2");
    
// 控制语句与控制语句之间可以嵌套,循环与控制之间也可以嵌套
if(布尔表达式){
    if(布尔表达式){
        while(){}
    }else{
        for(){}
    }
}else{
    java语句;
}
多分支 switch
语法格式:
    switch(值){
        case 值1:
            java语句;
            java语句;
            break;
        case 值2:
            java语句;
            java语句;
            break;
        case 值3:
            java语句;
            java语句;
            break;
        default:
            java;
    }
    其中:break;和deafult:分支不是必须的
    “值”:只支持int、String类型(jdk8之前不支持String),但是传入byte、short、char时会自动进行类型转换
    switch语句中值与值1 值2 比较的时候 内部使用 ==
执行原理:
    拿“值”与“值1”比较,如果相同,执行分支中的java语句,然后break语句结束
    如果与“值1”不相等,会与“值2”比较,依次
    注意:如果没有break;语句会发生case穿透,一直顺序执行语句直到遇见break
    
short s = 100;
switch(s){
}
char c = 'a';
switch(c){
}
switch("abc"){
}

3、循环结构

for循环
// 语法格式:
for(初始化表达式;布尔表达式;更新表达式){
    循环体;
}
    初始化表达式最先执行,并且只执行一次
    条件表达式结果必须是一个布尔类型
// 执行原理:
    先执行初始化表达式,然后判断条件表达式的结果,结果为true,执行循环体
    循环结束后执行更新表达式
    更新完之后,再次判断条件表达式,如果还是true,继续执行循环体
    只有当条件表达式为false时,结束循环
// 更新表达式作用:控制循环次数,更新表达式会更新某个变量的值,这样条件表达的结果才会变false

public class ForTest01{
    public static void main(String[] args){
        // 这是一个死循环
        for(;;){
            System.out.println("死循环")
        }
        // 最常见的
        for(int i=0;i<10;i++){
            System.out.println(i);
        }
        int k = 0;// 域扩大了
        for(;k<10;k++){
            System.out.println(k);
        }
        // 变形
        for(int i=1;i<=10;i++){
            System.out.println(i);
        }
        // 变形
        for(int i=1;i<=10;){
            System.out.println(i);
            i++;
        }
        // 变形
        for(int i=1;i<=10;){
            i++;
            System.out.println(i);
        }
    }
}
// for其他形式
public class ForTest02{
    public static void main(String[] args){
        // for的其他形式
        for(int i = 10;i > 0;i--){
            System.out.println(i);// 10 9 8 7 6 5 ...1
        }
        // 变形
        for(int i = 0;i < 10;i += 2){
            System.out.println(i);// 0 2 4 6 8
        }
        // 变形
        for(int i = 100;i > 0;i %= 3){// 1 % 3 = 0 ...1
            System.out.println(i);// 100 1 1 1 1...死循环
        }
    }
}
// for循环嵌套
public class ForTest03{
    public static void main(String[] args){
        for(int i = 0;i < 10;i++){
            for(int k = 0;i < 10;i++){
                System.out.println(i+";"+k);
            }
        }
        // 定义在外面
        int k = 0;
        for(int i = 0;i < 10;i++){
            for(;k < 10;k++){// 只输出一边,第二次的时候k变成10,不符合条件
                System.out.println(i+";"+k);
            }
        }
    }
}

 

while循环
while(布尔表达式){
    循环体;
}

初始化表达式;
while(布尔表达式){
    循环体;
    更新表达式;
}
执行原理:
    判断布尔表达式的结果,结果为true执行循环体,
    再次判断布尔表达式,为true继续执行循环体,为false,结束循环
public class WhileTest01{
    public static void main(String[] args){
        // 死循环
        while(true){
            System.out.println("死循环");
        }
        // 
        int i = 0;
        while(i < 10){
            System.out.println(i);
            i ++;
        }
    }
}

 

do..while循环
do{
    循环体;
}while(布尔表达式);
执行原理:
    先执行循环体的代码,再判断布尔表达式的结果,结果为true再次执行循环体,
    再次判断布尔表达式,为true继续执行循环体,为false,结束循环
    循环体至少执行一次
public class DoWhileTest01{
    public static void main(String[] args){
        int i = 0;
        do{
            System.out.println(i);
            // System.out.println(i++);
            i ++;
        }while(i<10);
    }
}

 4、转向语句

  •   break;
  •   continue;
  •   return;
break;语句
break翻译为折断 弄断
break语句作用:
    放在switch语句中,终止switch,防止case穿透
    放在循环语句中,终止循环
public class BreakTest{
    public static void main(String[] args){
        for (int i = 0;i < 10;i++){
            if(i==5){
                // 会让离他最近的循环终止结束
                break;
            }
            System.out.println(i);
        }
    }
}

 

continue;语句
continue翻译为继续 持续
continue语句作用:
    
public class ContinueTest{
    public static void main(String[] args){
        for (int i = 0;i < 10;i++){
            if(i==5){
                // 当前本次循环结束,这次循环后的代码也不执行,直接跳到下次循环,
                continue;
            }
            System.out.println(i);
        }
    }
}

 

标签:语句,java,--,System,JavaSE,out,表达式,布尔
From: https://www.cnblogs.com/hyy-0/p/17606835.html

相关文章

  • Part1--软件规范总纲
    开发人员规范软件代码编写规范套话目的:统一公司编码风格;提高代码易读性、可靠性和稳定性;减少软件维护成本提高生产力基本原则:维持代码易读、可维护;保持代码清晰;尽可能复用代码实用规则缩进新增文件缩进4空格;平台文件中新增函数、结构体、枚举类型4空格缩进;已经有的......
  • Codeforces Round 891 (Div. 3) 题解
    A.ArrayColoring因为:偶数+偶数=偶数奇数+奇数=偶数奇数+偶数=奇数所以设\(s1\)为奇数之和,\(s2\)为偶数之和\(s2\)必定是偶数如果奇数的个数为偶数,则\(s1\)为偶数;否则是奇数而在\(s1\)为奇数时,即使拿一个奇数加到\(s2\)里,那么也是不合法的所以直接判断奇数的......
  • uniapp中微信小程序取微信头像并上传到.net core后端
    uniapp中微信小程序取微信头像并上传到.netcore后端2023年08月09日后端net7测试成功,先记下来,以后要用的时候直接来这复制粘贴前端uniapp里的vue代码: <template><view><buttonclass="avatar-wrapper"open-type="chooseAvatar"@chooseavatar="o......
  • Vue3+ElementPlus,Cannot read properties of null (reading 'isCE')
    一、环境vue3,ElementPlus,@vue/cli5.0.8,npm9.6.7。二、报错内容在vue3框架,views文件夹下的AboutView.vue文件里,执行<el-button>Default</el-button>语句就会报错如下:Uncaughtruntimeerrors:×ERRORCannotreadpropertiesofnull(reading'isCE')TypeError:Cannotread......
  • Ajax传参,data与dataType
     在使用Ajax向后端传递数据时,你可以使用多种数据类型。在Ajax的dataType参数中,你可以指定以下几种常用的数据类型:"text":这是默认值,表示返回的数据将被视为纯文本字符串。"json":表示返回的数据将被视为JSON格式的数据。在前端代码中,你可以使用JSON.parse()将返回的数据转......
  • JavaSE--方法
    一、方法1、方法的定义/*[修饰符列表]返回值类型方法名(形式参数列表){方法体;//return;终止当前方法}方法写完之后需要调用去使用,不调用没法用1、修饰符列表:不是必选的2、返回值类型:可以是任何数据类型(基本数据类型和引用数据类......
  • 【Hystrix技术指南】(5)Command创建和执行实现
    推荐超值课程:点击获取创建流程构建HystrixCommand或者HystrixObservableCommand对象*使用Hystrix的第一步是创建一个HystrixCommand或者HystrixObservableCommand对象来表示你需要发给依赖服务的请求。若只期望依赖服务每次返回单一的回应,按如下方式构造一个HystrixCommand......
  • 【Hystrix技术指南】(6)请求合并机制原理分析
    推荐超值课程:点击获取[每日一句]也许你度过了很糟糕的一天,但这并不代表你会因此度过糟糕的一生。[背景介绍]分布式系统的规模和复杂度不断增加,随着而来的是对分布式系统可用性的要求越来越高。在各种高可用设计模式中,【熔断、隔离、降级、限流】是经常被使用的。而相关的技......
  • Java 中的 7 种重试机制,还有谁不会?!
    随着互联网的发展项目中的业务功能越来越复杂,有一些基础服务我们不可避免的会去调用一些第三方的接口或者公司内其他项目中提供的服务,但是远程服务的健壮性和网络稳定性都是不可控因素。在测试阶段可能没有什么异常情况,但上线后可能会出现调用的接口因为内部错误或者网络波动而出......
  • 言语理解
             ......