当前位置: 首页 > article >正文

java控制语句详解

条件控制语句

1.if 语句

基本形式:

if (条件表达式) {
    // 当条件表达式的值为true时执行的代码块
}

例如:

int num = 10;
if (num > 5) {
    System.out.println("num大于5");
}

if-else 语句:在if的基础上增加了else分支,当if中的条件表达式为false时,执行else中的代码块。

if (条件表达式) {
    // 条件为true时执行的代码块
} else {
    // 条件为false时执行的代码块
}

示例:

int score = 60;
if (score >= 60) {
    System.out.println("及格");
} else {
    System.out.println("不及格");
}

if-else if-else 语句:可以处理多个分支条件判断。

if (条件表达式1) {
    // 条件表达式1为true时执行的代码块
} else if (条件表达式2) {
    // 条件表达式2为true时执行的代码块
} else {
    // 前面所有条件都为false时执行的代码块
}

例如,根据成绩等级输出对应评价:

int grade = 85;
if (grade >= 90) {
    System.out.println("优秀");
} else if (grade >= 80) {
    System.out.println("良好");
} else if (grade >= 60) {
    System.out.println("及格");
} else {
    System.out.println("不及格");
}

注意点:字符串的比较不能使用“==”,必须手动调用equals方法来进行比较

示例

import java.util.Scanner;

public class kuozhuan {
    public static void main(String[] args) {
       Scanner s=new Scanner(System.in);
       System.out.println("欢迎用户使用本系统,请先进行用户登录");
       System.out.print("请输入用户名:");
       String username=s.next();
       System.out.print("请输入密码:");
       String password=s.next();

       if(username.equals("admin")&&password.equals("abc123"))
       {
           System.out.println("登录成功");
           
       }else{
           System.out.println("用户名不存在或者密码错误,登录失败!");
       }
    }
}

2.switch 语句


用于多分支选择,根据表达式的值来匹配不同的case分支并执行相应代码

1.表达式最后执行完是一个值,这个值要求类型是:int,枚举类型,字符串类型。

  当然,也可以直接把byte,short,char放进去,会进行自动类型转换

2.default语句不是必须的。建议写上,这样程序更加健壮。

3.break;语句只要执行,switch语句就会结束。

public class switchTest {
    public static void main(String[] args) {

        long x=100L;
        switch (x){ //编译报错,long类型是不允许的

        }

        //修改
        long x=100L;
        switch ((int)x){
    }

       byte b=1;//小容量转大容量可以自动转
        switch (b){ }

        short s=1;
        switch (s){ }
        char c='a';
        switch (c){ }//小容量转大容量可以自动转,char小于int,会转成’a‘对应的二进制编码
        
    }

例如,根据星期数字输出对应的星期几的字符串:

int day = 3;
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("输入的数字不合法");
}

需要注意的是,在每个case分支后如果没有break语句,会继续执行下一个case分支的代码,这叫 “case 穿透”,要根据实际需求合理使用或避免。

例如2:编写一个程序,根据输入的月份,输出该月份所属的季节。

import java.util.Scanner;

public class switchTest1 {
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        System.out.print("请输入月份:");
        int month=scanner.nextInt();
        switch (month){
            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;
            case 8:
                System.out.println("夏季");
                break;
            case 9:
                System.out.println("秋季");
                break;
            case 10:
                System.out.println("秋季");
                break;
            case 11:
                System.out.println("秋季");
                break;
            case 12:
                System.out.println("冬季");
                break;
            case 1:
                System.out.println("冬季");
                break;
            case 2:
                System.out.println("冬季");
                break;

        }
    }
}

注意:case可以合并

import java.util.Scanner;

public class switchTest1 {
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        System.out.print("请输入月份:");
        int month=scanner.nextInt();
        switch (month){
            case 3:
            case 4:
            case 5:
                System.out.println("春季");
                break;
            case 6:
            case 7:
            case 8:
                System.out.println("夏季");
                break;
            case 9:
            case 10:
            case 11:
                System.out.println("秋季");
                break;
            case 12:
            case 1:
            case 2:
                System.out.println("冬季");
                break;

        }
    }
}

循环控制语句

1.while 循环

只要条件表达式的值为true,就会重复执行循环体中的代码。

while (条件表达式) {
    // 循环体,条件表达式为true时执行的代码块
}

例如,计算 1 到 100 的整数之和:

int sum = 0;
int i = 1;
while (i <= 100) {
    sum += i;
    i++;
}
System.out.println("1到100的和为:" + sum);

2.do-while 循环

它先执行一次循环体,然后再判断条件表达式的值是否为true,如果为true,则继续循环,否则结束循环。

do {
    // 循环体
} while (条件表达式);

例如,同样计算 1 到 100 的整数之和:

int sum = 0;
int i = 1;
do {
    sum += i;
    i++;
} while (i <= 100);
System.out.println("1到100的和为:" + sum);

while循环不同的是,do-while循环至少会执行一次循环体。

3. for 循环

常用于已知循环次数的情况,语法结构更加紧凑。

for (初始化表达式; 条件表达式; 迭代表达式) {
    // 循环体
}

例如,输出 1 到 10 的数字:

for (int j = 1; j <= 10; j++) {
    System.out.println(j);
}

初始化表达式用于初始化循环变量,条件表达式决定循环是否继续执行,迭代表达式用于在每次循环结束后更新循环变量。

跳转控制语句

1.break 语句

在switch语句中,用于终止switch结构,使程序跳出switch块,执行后面的代码。 在循环语句(while、do-while、for)中,用于强制跳出当前所在的循环,结束循环的执行。例如:

for (int k = 1; k <= 10; k++) {
    if (k == 5) {
        break;
    }
    System.out.println(k);
}

上述代码在k等于 5 时就会跳出for循环,只会输出 1、2、3、4。

2. continue 语句

用于在循环语句中,跳过本次循环体中剩余的语句,直接开始下一次循环的判断和执行。例如:

for (int m = 1; m <= 10; m++) {
    if (m % 2 == 0) {
        continue;
    }
    System.out.println(m);
}

该代码会输出 1 到 10 中的奇数,当m为偶数时,执行continue语句,直接进入下一次循环的条件判断,跳过了输出偶数的操作。

这些控制语句相互配合,可以实现各种复杂的程序逻辑控制,满足不同业务场景下的编程需求。


http://www.kler.cn/a/464347.html

相关文章:

  • ‘元素.style.样式名‘获取不到样式,应该使用Window.getComputedStyle()获取正真的样式
  • 实现一个通用的树形结构构建工具
  • df.groupby()方法使用表达式分组
  • AMP 混合精度训练中的动态缩放机制: grad_scaler.py函数解析( torch._amp_update_scale_)
  • 《Vue3实战教程》34:Vue3状态管理
  • UE5通过蓝图节点控制材质参数
  • ts总结一下
  • 《CCSIP 2024中国网络安全产业全景册(第七版)》
  • 深入了解多模态深度学习:概述与未来发展
  • 基于Hadoop的物品租赁系统的设计与实现-springboot+vue
  • 单片机常用外设开发流程(1)(IMX6ULL为例)
  • MarkDown 的 mermaid gantt(甘特图)、mermaid sequenceDiagram (流程图) 语法解析和应用
  • SQL Server 架构、数据库文件组和数据库对象
  • 自动化删除work32挖矿脚本
  • windows C#-字符串和字符串字面量(一)
  • 力扣hot100——图论
  • Cauchy-Schwarz不等式:向量内积的“上限卫士”,帮你衡量向量有多“同向”
  • 数据挖掘——神经网络分类
  • df.replace({‘b‘: ‘.‘}, {‘b‘: np.nan})
  • SpringMVC(四)响应
  • 【Go学习】-01-1-入门及变量常量指针
  • R语言基础| 广义线性模型
  • 【可实战】需求分析-测试计划↓-测试设计-测试执行-测试总结↓(包含测试计划、测试总结模板,以公司要求为准)
  • 【Unity3D】基于UGUI——简易版 UI框架
  • PgSQL如何用cmd命令行备份和还原数据库
  • SQLALchemy如何将SQL语句编译为特定数据库方言