Java语言程序设计——篇三(1)
选择结构
- 概述
- 选择
- 单分支if语句
- 例题讲解
- 双分支if-else语句
- 例题讲解
- 条件运算符
- 多分支的if-else语句
- 例题讲解
- 嵌套的if语句
- 例题讲解
- switch语句结构
- 例题讲解
- 代码演示
- 运行结果
概述
Java中的控制结构,包括:
1、选择结构( if、if-else、switch )
2、循环结构( while、do-while、for )
3、异常处理语句( try-catch-finally、throw)
选择
单分支if语句
语法格式如下所示:
if(条件表达式) {
// 语句序列
}
单分支if语句中,条件表达式是一个布尔值
当值为true时,才会执行 {} 中的语句。
否则,执行 if 结构后面的语句。
例题讲解
例:在求圆面积问题中,要求只有当radius>=0时才计算圆的面积。
if (radius >= 0) {
area = radius * radius * 3.14159;
System.out.println("The area for the circle of radius " + radius + " is " + area);
}
双分支if-else语句
if…else语句是指如果满足给定条件,就进行某种处理,否则就进行另一种处理,其语法格式如下所示:
if (条件表达式){
语句序列1
}
else{
语句序列2
}

例题讲解
例:在求圆面积问题中,要求只有当radius>=0时才计算圆的面积,否则,程序给出错误提示。
if (radius >= 0){
area = radius * radius * 3.14159;
System.out.println("The area for the circle of radius "
+ radius + " is " + area);
}
else {
System.out.println(“Negative input”);
}
条件运算符
条件运算符(conditional operator)格式如下:
condition ? expression1 : expression2
条件运算符可实现if~else结构。
若max, a, b是int型变量:
if (a > b) {
max = a;
}else {
max = b;
}
与max = (a > b)? a : b ;一样
多分支的if-else语句
if (条件表达式1){
语句序列1
}
else if (条件表达式2){
语句序列2
}
......
else if (条件表达式n ){
语句序列n
}
else{
语句序列n+1
}
条件表达式的结果必须都是布尔型

例题讲解
例:输入学生的百分制成绩,打印输出等级的成绩。等级规定为,
90分及以上的为“A”
80分及以上的为“B”
70分及以上的为“C”
60分及以上的为“D”
60分以下为“E”。
if (score > =90.0)
grade = ‘A’;
else if (score >= 80.0)
grade = ‘B’;
else if (scroe >= 70.0)
grade = ‘C’;
else if (score >= 60.0)
grade = ‘D’;
else
grade = ‘E’;
嵌套的if语句
其语法形式如下:
if (表达式1)
if (表达式2)
语句1
else 语句2
else
if (表达式3)
语句3
else 语句4
嵌套应分层缩进书写;
else总是与它上面最近的未配对的if配对。(就“近”原则)
嵌套的层数不宜太多,一般以2~3层为宜

例题讲解
例:求a、b和c中最大值并将其保存到max中。
if ( a>b )
if ( a>c )
max=a;
else max=c;
else
if ( b>c )
max=b;
else max=c;
switch语句结构
针对表达式的值做出判断,从而决定执行哪些语句。
switch(表达式){
case 常量表达式1:
语句序列1;
break ;
case 常量表达式2:
语句序列2;
break;
......
case 常量表达式n:
语句序列n;
break;
default:
语句序列n+1;
}
注意
表达式:类型为byte,short,int,char,enum,String
并且与各个case后面的常量表达式值的类型一致。
语句序列:每个case子句后面可以跟多条语句,这些语句可以不用大括号括起来。
break:一般都有break,若没有则多个case共享一个分支。结束switch结构。
default:可有可无。 有时,当表达式的值与任何一个case后的常量表达式的值不相同时执行。没有,不执行任何操作,直接跳出switch结构。
例题讲解
例:编写程序,从键盘输入一个年份(如2020年)和一个月份(如2月),输出该月的天数(29)。
闰年的定义是:
如果年份能被4整除但不能被100整除,则是闰年。
如果年份能被400整除,则也是闰年。
代码演示
package shujia_test1;import java.util.Scanner;public class Csdn3_1 {public static void main(String[] args) {Scanner input = new Scanner(System.in);System.out.print("输入一个年份:");int year = input.nextInt();System.out.print("输入一个月份:");int month = input.nextInt();int numDays = 0;switch (month) {case 1:case 3:case 5:case 7:case 8:case 10:case 12:numDays = 31;break;case 4:case 6:case 9:case 11:numDays = 30;break;case 2: // 对2月需要判断是否是闰年if (((year % 4 == 0) && !(year % 100 == 0)) || (year % 400 == 0)){numDays = 29;}else{numDays = 28;}break;default:System.out.println("月份非法.");break;}2020System.out.println(" 该月的天数为:" + numDays);}
}
运行结果

博主用心写,读者点关注,互动传真情,知识不迷路。
相关文章:
Java语言程序设计——篇三(1)
选择结构 概述选择单分支if语句例题讲解 双分支if-else语句例题讲解 条件运算符多分支的if-else语句例题讲解 嵌套的if语句例题讲解 switch语句结构例题讲解代码演示运行结果 概述 Java中的控制结构,包括: 1、选择结构( if、if-else、switch ) 2、循环结…...
基于SpringBoot实现轻量级的动态定时任务调度
在使用SpringBoot框架进行开发时,一般都是通过Scheduled注解进行定时任务的开发: Component public class TestTask {Scheduled(cron"0/5 * * * * ? ") //每5秒执行一次public void execute(){SimpleDateFormat df new SimpleDateFormat(…...
夸克升级“超级搜索框” 推出AI搜索为中心的一站式AI服务
大模型时代,生成式AI如何革新搜索产品?阿里智能信息事业群旗下夸克“举手答题”。7月10日,夸克升级“超级搜索框”,推出以AI搜索为中心的一站式AI服务,为用户提供从检索、创作、总结,到编辑、存储、分享的一…...
element-ui el-select选择器组件下拉框增加自定义按钮
element-ui el-select选择器组件下拉框增加自定义按钮 先看效果 原理:在el-select下添加禁用的el-option,将其value绑定为undefined,然后覆盖el-option禁用状态下的默认样式即可 示例代码如下: <template><div class…...
Python基于you-get下载网页上的视频
1.python 下载地址 下载 : https://www.python.org/downloads/ 2. 配置环境变量 配置 python_home 地址 配置 python_scripts 地址 在path 中加入对应配置 3. 验证 C:\Users>python --version Python 3.12.4C:\Users>wheel version wheel 0.43.04. 下载 c…...
大模型/NLP/算法面试题总结3——BERT和T5的区别?
1、BERT和T5的区别? BERT和T5是两种著名的自然语言处理(NLP)模型,它们在架构、训练方法和应用场景上有一些显著的区别。以下是对这两种模型的详细比较: 架构 BERT(Bidirectional Encoder Representation…...
vue3项目打包的时候,怎么区别测试环境,和本地环境
在Vue 3项目中区别测试环境和本地环境,并标记接口的方法可以通过环境变量来实现。 首先,你可以在你的项目根目录下创建一个.env文件,并定义你的环境变量。比如,你可以创建.env.local作为本地环境的配置文件,.env.test…...
小特性 大用途 —— YashanDB JDBC驱动的这些特性你都get了吗?
在现代数据库应用场景中,系统的高可用性和负载均衡是确保服务稳定性的基石。YashanDB JDBC驱动通过其创新的多IP配置特性,为用户带来了简洁而强大的解决方案,以实现数据库连接的高可用性和负载均衡,满足企业级应用的高要求。 01 …...
全网最全的软件测试面试八股文
前面看到了一些面试题,总感觉会用得到,但是看一遍又记不住,所以我把面试题都整合在一起,都是来自各路大佬的分享,为了方便以后自己需要的时候刷一刷,不用再到处找题,今天把自己整理的这些面试题…...
VMware虚拟机配置桥接网络
转载:虚拟机桥接网络配置 一、VMware三种网络连接方式 VMware提供了三种网络连接方式,VMnet0, VMnet1, Vmnet8,分别代表桥接,Host-only及NAT模式。在VMware的编辑-虚拟网络编辑器可看到对应三种连接方式的设置(如下图…...
华为机考真题 -- 攀登者1
题目描述: 攀登者喜欢寻找各种地图,并且尝试攀登到最高的山峰。地图表示为一维数组,数组的索引代表水平位置,数组的元素代表相对海拔高度。其中数组元素0代表地面。 一个山脉可能有多座山峰(山峰定义:高度大于相邻位置的高度,或在地图边界且高度大于相邻的高度)。登山者…...
深入理解Python密码学:使用PyCrypto库进行加密和解密
深入理解Python密码学:使用PyCrypto库进行加密和解密 引言 在现代计算领域,信息安全逐渐成为焦点话题。密码学,作为信息保护的关键技术之一,允许我们加密(保密)和解密(解密)数据。P…...
MMSegmentation笔记
如何训练自制数据集? 首先需要在 mmsegmentation/mmseg/datasets 目录下创建一个自制数据集的配置文件,以我的苹果叶片病害分割数据集为例,创建了mmsegmentation/mmseg/datasets/appleleafseg.py 可以看到,这个配置文件主要定义…...
Python基础语法:变量和数据类型详解(整数、浮点数、字符串、布尔值)①
文章目录 变量和数据类型详解(整数、浮点数、字符串、布尔值)一、变量二、数据类型1. 整数(int)2. 浮点数(float)3. 字符串(str)4. 布尔值(bool) 三、类型转换…...
【C++航海王:追寻罗杰的编程之路】关联式容器的底层结构——红黑树
目录 1 -> 红黑树 1.1 -> 红黑树的概念 1.2 -> 红黑树的性质 1.3 -> 红黑树节点的定义 1.4 -> 红黑树的结构 1.5 -> 红黑树的插入操作 1.6 -> 红黑树的验证 1.8 -> 红黑树与AVL树的比较 2 -> 红黑树模拟实现STL中的map与set 2.1 -> 红…...
MySQL DDL
数据库 1 创建数据库 CREATE DATABASE 数据库名 CREATE DATABASE IF NOT EXISTS 数据库名;(判断是否存在) CREATE DATABASE 数据库名 CHARACTER SET 字符 2 查看数据库 SHOW DATABASES; 查看某个数据库的信息 SHOW CAEATE DATABASE 数据库名 3 修改数据库 …...
从模型到应用:李彦宏解读AI时代的新趋势与挑战
如何理解李彦宏说的“不要卷模型,要卷应用” 开源项目的机遇与挑战 7月4日,2024世界人工智能大会暨人工智能全球治理高级别会议在上海世博中心举办。在产业发展主论坛上,百度创始人、董事长兼首席执行官李彦宏呼吁:“大家不要卷…...
C++ STL 随机数用法介绍
目录 一:C语言中的随机数 二:C中的随机数 1. 生成随机数的例子 2. 随机数引擎 3. 随机数引擎适配器 4. C中预定义的随机数引擎,引擎适配器 5. 随机数分布 一:C语言中的随机数 <stdlib.h>//初始化随机种子 srand(static_ca…...
容器之docker compose
Docker Compose 是一个用于定义和运行多容器 Docker 应用的工具。通过一个 YAML 文件,您可以配置应用程序需要的所有服务,并使用单个命令来创建和启动这些服务。以下是对 Docker Compose 的详细介绍: 核心概念 服务(Services&am…...
MIT机器人运动控制原理浅析-人形机器人
MIT人形机器人基于开发改进的执行器全新设计,通过可感知执行器运动动力学移动规划器(Actuator-Aware Kino-Dynamic Motion Planner)及着地控制器(Landing Controller)等实现机器人的运动控制。 机器人设计 机器人高0.7米,21KG(四肢重量 25%),…...
IDEA运行Tomcat出现乱码问题解决汇总
最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…...
全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...
管理学院权限管理系统开发总结
文章目录 🎓 管理学院权限管理系统开发总结 - 现代化Web应用实践之路📝 项目概述🏗️ 技术架构设计后端技术栈前端技术栈 💡 核心功能特性1. 用户管理模块2. 权限管理系统3. 统计报表功能4. 用户体验优化 🗄️ 数据库设…...
论文笔记——相干体技术在裂缝预测中的应用研究
目录 相关地震知识补充地震数据的认识地震几何属性 相干体算法定义基本原理第一代相干体技术:基于互相关的相干体技术(Correlation)第二代相干体技术:基于相似的相干体技术(Semblance)基于多道相似的相干体…...
JS设计模式(4):观察者模式
JS设计模式(4):观察者模式 一、引入 在开发中,我们经常会遇到这样的场景:一个对象的状态变化需要自动通知其他对象,比如: 电商平台中,商品库存变化时需要通知所有订阅该商品的用户;新闻网站中࿰…...
【C++进阶篇】智能指针
C内存管理终极指南:智能指针从入门到源码剖析 一. 智能指针1.1 auto_ptr1.2 unique_ptr1.3 shared_ptr1.4 make_shared 二. 原理三. shared_ptr循环引用问题三. 线程安全问题四. 内存泄漏4.1 什么是内存泄漏4.2 危害4.3 避免内存泄漏 五. 最后 一. 智能指针 智能指…...
比较数据迁移后MySQL数据库和OceanBase数据仓库中的表
设计一个MySQL数据库和OceanBase数据仓库的表数据比较的详细程序流程,两张表是相同的结构,都有整型主键id字段,需要每次从数据库分批取得2000条数据,用于比较,比较操作的同时可以再取2000条数据,等上一次比较完成之后,开始比较,直到比较完所有的数据。比较操作需要比较…...
LOOI机器人的技术实现解析:从手势识别到边缘检测
LOOI机器人作为一款创新的AI硬件产品,通过将智能手机转变为具有情感交互能力的桌面机器人,展示了前沿AI技术与传统硬件设计的完美结合。作为AI与玩具领域的专家,我将全面解析LOOI的技术实现架构,特别是其手势识别、物体识别和环境…...
MySQL的pymysql操作
本章是MySQL的最后一章,MySQL到此完结,下一站Hadoop!!! 这章很简单,完整代码在最后,详细讲解之前python课程里面也有,感兴趣的可以往前找一下 一、查询操作 我们需要打开pycharm …...
Vue3中的computer和watch
computed的写法 在页面中 <div>{{ calcNumber }}</div>script中 写法1 常用 import { computed, ref } from vue; let price ref(100);const priceAdd () > { //函数方法 price 1price.value ; }//计算属性 let calcNumber computed(() > {return ${p…...
