Java(三)---逻辑控制

news2024/11/24 6:04:25

文章目录

  • 前言
  • 1.逻辑控制语句的分类
  • 1.顺序结构
  • 2.分支结构
    • 2.1.if结构
      • 2.1.1.if...else语句
      • 2.2.2.if ... else if... else语句
    • 2.2.switch语句
  • 3.循环结构
    • 3.1.while
    • 3.2.break
    • 3.3.continue
    • 3.4.for循环
    • 3.5.do while循环
  • 4.输入输出
    • 4.1.输入到控制台
    • 4.2.从键盘输入


前言

前两篇文章,我们初步了解了Java语言,今天我们写一篇关于逻辑控制的文章


1.逻辑控制语句的分类

  • 1.顺序结构
  • 2.分支结构
  • 3.循环结构

1.顺序结构

顺序结构比较简单,按照代码书写的顺序一行一行执行。

 public static void main(String[] args) {
        //1.顺序结构
        System.out.println("aaa");
        System.out.println("bbb");
        System.out.println("ccc");
    }

2.分支结构

2.1.if结构

语法结构:

if(布尔表达式){
语句
}

 public static void main(String[] args) {
        //1.if(布尔表达式)
        int score=90;
        if(score>=90){
            System.out.println("Your score is great");
        }
    }

注意:判断条件一定是布尔表达式,不能是if(1)…,

		if(1){
            System.out.println("Your score is great");
        }

在这里插入图片描述

2.1.1.if…else语句

语法:
if(布尔表达式){
语句1
}else{
语句2
}

判断一个数是奇数还是偶数

		int n=2;
        if(n%2==1){
            System.out.println("n is an odd number");
        }else{
            System.out.println("n is an even number");
        }

2.2.2.if … else if… else语句

判断一个学生成绩(A,B,C,D,E)

 public static void main(String[] args) {
        int score=88;
        if(score >= 90){
            System.out.println("A");
        }else if(score < 90&&score >= 80){
            System.out.println("B");
        } else if (score >= 70 && score < 80) {
            System.out.println("C");
        } else if (score >= 60 && score < 70) {
            System.out.println("D");
        }else {
            System.out.println("E");
        }
    }

注意:悬垂 else 问题

 		int x = 10;
        int y = 10;
        if (x == 10)
            if (y == 10)
                System.out.println("aaa");
            else
                System.out.println("bbb");
        

建议:不要这样写,最好加上大括号。

2.2.switch语句

语法:switch(表达式){
case 常量值1:{
语句1;
[break;]
}
case 常量值2:{
语句2;
[break;]
}

default:{
内容都不满足时执行语句;
[break;]
}
}

		int a=10;
        switch (a)
        {
            //case之后必须是常量值
            case 10:
                System.out.println("a == 10");
                break;
            default:
                System.out.println("a!=10");
        }

判断是星期几

byte day=5;
        switch (day)
        {
            case 1:
                System.out.println("星期二");
                break;
            case 2:
                System.out.println("星期二");
                break;
            case 3:
                System.out.println("星期三");
            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;

        }

注意:1.switch的括号内只能是以下类型的表达式
基本类型:byte、char、short、int,注意不能是long类型
引用类型:String常量串、枚举类型
2.switch不要使用嵌套

public static void main(String[] args) {
        int x = 1;
        int y = 1;
        switch(x) {
            case 1:
                switch (y) {
                    case 1:
                        System.out.println("hehe");
                        break;
                    case 2:
                        System.out.println("haha");
                        break;
                }
        }
    }

3.循环结构

3.1.while

语法:
while(布尔表达式){
语句1;
}

计算1—100的和

public static void main(String[] args) {
        //1.计算1--100的和
        int n=1;
        int ret=0;
        while (n<=100){
            ret+=n;
            n++;
        }
        System.out.println(ret);
    }

计算5的阶乘

		int n=1;
        int ret=1;
        while (n<=5){
            ret*=n;
            n++;
        }
        System.out.println(ret);

计算1!+2!+3!+4!+5!的和

		//计算1!+2!+3!+4!+5!的和
        int n=1;
        int sum=0;
        //外部负责相加
        while(n<=5){
            int tmp=1;
            int ret=1;
            //里面负责阶乘
            while (tmp<=n){
                ret*=tmp;
                tmp++;
            }
            sum+=ret;
            n++;
        }
        System.out.println(sum);

3.2.break

找到 100 - 200 中第一个 3 的倍数
break 的功能是让循环提前结束.

        //找到 100 - 200 中第一个 3 的倍数
        int n=100;
        while (n<=200){
            if(n%3==0){
                System.out.println(n);
                break;
            }
            n++;
        }
    }

3.3.continue

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

 public static void main(String[] args) {
        //continue 的功能是跳过这次循环, 立即进入下次循环
        int i=1;
        while(i<=10){
            if(i==7) {
               continue;
            }
            //当i==7时,下面的代码就不执行了,进行到了死循环
            System.out.println(i);
            i++;
        }
    }
    求出 1-100之间 所有既能被3  也能被5 整除的数字
     要使用break 或者continue 做
public static void main(String[] args) {
        //求出 1-100之间 所有既能被3  也能被5 整除的数字
        // 要使用break 或者continue 做
        int i=0;
        while (i<=100){
            if(i%15!=0){
                i++;
                continue;
            }
            System.out.println(i+" ");
            i++;
        }
    }

3.4.for循环

语法:

for(表达式①;布尔表达式②;表达式③){
表达式④;
}
表达式1: 用于初始化循环变量初始值设置,在循环最开始时执行,且只执行一次
表达式2: 循环条件,满则循环继续,否则循环结束
表达式3: 循环变量更新方式

计算5的阶乘

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

计算1!+2!+3!+4!+5!的和

		int sum=0;
        for(int i=1;i<=5;i++){
            int tmp=1;
            for (int j = 1; j <= i; j++) {
                tmp*=j;
            }
            sum+=tmp;
        }
        System.out.println(sum);

3.5.do while循环

语法:

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

打印1—10

	int n=1;
        do {
            System.out.println(n);
            n++;
        }while (n<=10);

4.输入输出

4.1.输入到控制台

语法:System.out.println(msg); // 输出一个字符串, 带换行
System.out.print(msg); // 输出一个字符串, 不带换行
System.out.printf(format, msg); // 格式化输出

println 输出的内容自带 \n, print 不带 \n
printf 的格式化输出方式和 C 语言的 printf 是基本一致的.

4.2.从键盘输入

import java.util.Scanner;//导入包
public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入你的姓名:");
        String name = sc.nextLine();
        System.out.println("请输入你的年龄:");
        int age = sc.nextInt();
        System.out.println("请输入你的工资:");
        float salary = sc.nextFloat();
        System.out.println("你的信息如下:");
        System.out.println("姓名: "+name+"\n"+"年龄:"+age+"\n"+"工资:"+salary);
        sc.close(); // 注意, 要记得调用关闭方法
        }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1667303.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据分析概念定义和发展前景

数据分析概念定义和发展前景 前言一、数据分析概念二、数据的定义数据的定义数据的分类定性数据定量数据 三、数据的价值数据为什么具有价值 四、数据分析的目的对于企业来说总结 五、数据分析类型的划分描述性统计分析探索性数据分析传统的统计分析方法验证性数据分析 六、 数…

240512-关于如何用VSCode编写C#程序的简单说明

240512-关于如何用VSCode编写C#程序的简单说明 从安装软件开始 &#xff0c;到编写一个HelloWorld的C#文件结束&#xff0c;介绍如何用VSCode编写C#程序 1 上官网下载一个安装包 官网地址&#xff1a;https://visualstudio.microsoft.com/zh-hans/downloads/ 2 打开安装包进…

3D分子生成的定制扩散框架 MolDiff - 评测

MolDiff模型是一种考虑分子键生成的3D分子生成的新模型。MolDiff是清华大学智能产业研究院马剑竹课题组发表在PMLR 2023的工作&#xff0c;第一作者是Xingang Peng&#xff0c;文章题目为&#xff1a;《 Addressing the Atom-Bond Inconsistency Problem in 3D Molecule Genera…

计算机毕业设计 | vue+springboot调查问卷管理系统(附源码)

1&#xff0c;研究目的 在进入21世纪以后&#xff0c;互联网得到了蓬勃的发展&#xff0c;电子问卷调查也开始逐渐流行起来。传统纸质问卷和电子问卷相比较后&#xff0c;传统问卷还存在很多弊端&#xff1a; 问卷分发起来比较困难&#xff0c;并且分发试卷耗费大量的金钱和时…

Vue3项目Easy云盘(二):文件列表+新建目录+文件重命名+文件上传

一、文件列表 1.封装全局组件Table.vue 因为Main.vue等都会用到文件列表table&#xff0c;所以直接封装成组件。 src/components/Table.vue <template><!-- 表格 --><div><el-tableref"dataTable":data"dataSource.list || []":h…

关于在ubuntu18.04中运行ORB_SLAM3时遇到的报错:段错误(核心已转储)的解决方法(踩坑记录)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 一、段错误&#xff08;核心已转储&#xff09;1. 已放弃(核心已转储)(1) 问题描述(2)原因分析 二、解决方法1. 解决方法一2. 解决方法二 总结 一、段错误&#xff…

Vditor集成于VUE笔记

文章目录 前言一、安装Vditor二、渲染markdown三、options3.1 自建CDN3.2 outline大纲不显示、不跳转问题3.3 upload 图片/视频上传3.4 toolbar提示位置点击事件more中文字 3.5 sv分屏渲染模式隐藏编辑框3.6 after中的insertValue或者setValue 前言 Vditor是一款易于使用的 Ma…

大学生体质测试|基于Springboot+vue的大学生体质测试管理系统设计与实现(源码+数据库+文档)

大学生体质测试管理系统 目录 基于Springboot&#xff0b;vue的大学生体质测试管理系统设计与实现 一、前言 二、系统设计 三、系统功能设计 1系统功能模块 2管理员功能模块 3用户功能模块 4教师功能模块 四、数据库设计 五、核心代码 六、论文参考 七、最新计算…

WebRTC实现多人通话-Mesh架构【保姆级源码教程】

一、Mesh架构 WebRTC&#xff08;Web Real-Time Communications&#xff09;中的Mesh架构是一种将多个终端之间两两进行连接&#xff0c;形成网状结构的通信模式。以下是关于WebRTC的Mesh架构的详细解释&#xff1a; 基本概念&#xff1a;在Mesh架构中&#xff0c;每个参与者…

【QT】QT背景介绍

本专栏内容为&#xff1a;QT学习专栏 通过本专栏的深入学习&#xff0c;你可以了解并掌握QT。 &#x1f493;博主csdn个人主页&#xff1a;小小unicorn ⏩专栏分类&#xff1a;QT &#x1f69a;代码仓库&#xff1a;小小unicorn的代码仓库&#x1f69a; &#x1f339;&#x1f…

Nios-II编程入门实验

文章目录 一 Verilog实现流水灯二 Nios实现流水灯2.1 创建项目2.2 SOPC添加模块2.3 SOPC输入输出连接2.4 Generate2.5 软件部分2.6 运行结果 三 Verilog实现串口3.1 代码3.2 引脚3.3 效果 四 Nios2实现串口4.1 sopc硬件设计4.2 top文件4.3 软件代码4.4 实现效果 五 参考资料六 …

树莓派点亮FPGA小灯

树莓派点亮FPGA小灯 引言&#xff1a; ​ 本次实验的目的是通过树莓派和FPGA之间的串口通信&#xff0c;控制FPGA开发板上的小灯。实验将展示如何使用树莓派发送特定的字符信号&#xff0c;通过串口传输至FPGA&#xff0c;并在FPGA上实现逻辑解析&#xff0c;以点亮指定的小灯。…

如何在Mac 电脑上安装 Homebrew

1、打开终端应用程序 在终端中输入以下命令并回车: /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 这个命令会自动下载并运行 Homebrew 的安装脚本。 系统可能会提示您输入管理员密码,请输入您的 Mac 登录…

java异常,日志,线程堆栈与Jvm调优

一.知识目录&#xff1a; 二.什么是java异常&#xff1a; 2.1 Throwable类中的重要方法: (1)四个构造方法&#xff08;用来构造throwable对象&#xff0c;不同构造方法可以传递不同的参数值&#xff09;&#xff1a; /** 构造一个将 null 作为其详细消息的新 throwable */ Thr…

BGP学习一:关于对等体建立和状态组改变

目录 一.BGP基本概念 &#xff08;1&#xff09;.BGP即是协议也是分类 1.早期EGP 2.BGP满足不同需求 3.BGP区域间传输的优势 &#xff08;1&#xff09;安全性——只传递路由信息 &#xff08;2&#xff09;跨网段建立邻居 4.BGP总结 5.BGP的应用 &#xff08;1&#…

MySQL-索引篇

文章目录 什么是索引&#xff1f;索引的优缺点索引底层数据结构选型Hash表二叉查找树AVL树红黑树B树&B树 索引类型总结主键索引二级索引聚集索引与非聚集索引聚集索引非聚集索引 覆盖索引与关联索引覆盖索引联合查询最左前缀匹配原则 索引下推如何正确使用索引选择合适的字…

Linux基础命令(续)

17&#xff0c;wc命令 作用&#xff1a;统计行数、单词数、字符个数 格式&#xff1a; wc 选项 文件 wc passwd 26 36 1159 passwd26&#xff1a;行数 36&#xff1a;单词数 1159&#xff1a;字符数 passwd&#xff1a;文件名wc autofs.conf 426 2604 15137 autofs.conf426…

CentOS7 安装 Kamailio

https://www.kamailio.org/wiki/packages/rpms 官方文档说 yum -y install yum-utils yum-config-manager --add-repo https://rpm.kamailio.org/centos/kamailio.repo 但目前这样其实行不通 需要这样做&#xff1a; yum install --disablerepokamailio --enablerepokamai…

在Linux操作系统中LVM逻辑券管理指令

1.PV物理券相关指令 1.查看机器中的PV pvscan 命令 这个叫做/dev/sda2 的PV&#xff0c;被加入到了名叫centos的卷组中&#xff0c;并且这个券组的大小是小于19.51GB 2.创建物理券 pvcreate 磁盘/分区名称 pvcreate /dev/sdc 3.删除物理券 pvremove 磁盘/分区名称 2.…