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;
		}2020
		System.out.println(" 该月的天数为:" + numDays);
	}
}

运行结果

在这里插入图片描述
博主用心写,读者点关注,互动传真情,知识不迷路。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

空间自回归模型及 Stata 具体操作步骤

目录 一、理论原理 二、数据准备 三、程序代码及解释 四、代码运行结果 一、理论原理 空间自回归模型(Spatial Autoregressive Model,SAR)是一种用于分析具有空间相关性的数据的统计模型。它假设观测值之间的相关性不仅取决于传统的时间或…

深入理解 go map

什么是 map 维基百科里这样定义 map: In computer science, an associative array, map, symbol table, or dictionary is an abstract data type composed of a collection of (key, value) pairs, such that each possible key appears at most once in the collection. 简单…

镭速Raysync vs MASV:哪个才最合适企业大文件传输

在当前信息爆炸的时代,企业面临的一个关键挑战是如何高效、安全地传输日益增长的大量文件。选择正确的文件传输工具对于企业的日常运作至关重要。本文旨在对比分析两款备受瞩目的企业级大文件传输解决方案——镭速Raysync和MASV,以助企业决策者挑选出最适…

【代码随想录】【算法训练营】【第64天】 [卡码117]软件构建 [卡码47]参加科学大会

前言 思路及算法思维,指路 代码随想录。 题目来自 卡码网。 day 64,周三,继续ding~ 题目详情 [卡码117] 软件构建 题目描述 卡码117 软件构建 解题思路 前提: 思路: 重点: 代码实现 C语言 [卡码…

python的集合

定义 集合(是一个无序的、不包含重复元素的集合。集合对象支持数学上的标准集合操作,如并集、交集、差集等。) 创建集合 添加元素 删除元素 遍历 其他 union() 或 |:返回两个集合的 并集intersection() 或 &:返回…

CLion学习笔记-cmake编译和多main函数编译

这里就不讲怎么配置clion了 项目名字 pcl_kdtree_search 1.新建一个工程名字自己取,我这里用自己学习pcl的,加一个main函数,这个时候Cmake里边就是这样的。 #声明要求的cmake最低版本 cmake_minimum_required(VERSION 3.19) #声明一个工程…

leetcode:1332. 删除回文子序列(python3解法)

难度:简单 给你一个字符串 s,它仅由字母 a 和 b 组成。每一次删除操作都可以从 s 中删除一个回文 子序列。 返回删除给定字符串中所有字符(字符串为空)的最小删除次数。 「子序列」定义:如果一个字符串可以通过删除原字…

力扣 160相聚链表

注意 判断是否有交点 用while(A! B) 其中A A nullptr? headb:A->next;B同理 注意,while循环的退出条件是AB指针指向同一个,如果没有相交,仍然可以退出 当AB都为NULLPTR时退出

怎么样的主食冻干算好冻干?避坑私藏宝藏主食冻干分享

主食冻干市场现状复杂多变,产品品质差异显著。部分品牌过分追求营养指标的堆砌与利润的最大化,却忽略了猫咪健康饮食的根本所在,导致市场上充斥着以次充好、虚假标注等不法行为。更有甚者,一些产品未经严格第三方检测便流入市场&a…

亚马逊erp跟卖采集之关键词采集

大家好,今天讲这款erp的跟卖采集关键词采集。 打开erp跟卖功能采集任务,点新增任务站点美国,有5种采集方式:关键词、店铺链接、类目ASIN。 选择关键词采集,这里我选择女童装,选择女童板鞋复制粘贴。页数我…

[Spring] SpringBoot基本配置与快速上手

🌸个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 🏵️热门专栏: 🧊 Java基本语法(97平均质量分)https://blog.csdn.net/2301_80050796/category_12615970.html?spm1001.2014.3001.5482 🍕 Collection与…

第四门课 第一周 卷积神经网络

第四门课 第一周 卷积神经网络(Convolutional Neural Networks) 文章目录 第四门课 第一周 卷积神经网络(Convolutional Neural Networks)1.1 计算机视觉遇到的问题(Computer vision)1.2 卷积运算示例&…

[C++] 模拟实现list(一)

标题:[C] 模拟实现list 水墨不写bug 目录 一、list简介 二、铺垫 I,分离编译模式的选择 II,数据结构分析 (1)命名空间 (2)类的设计分析 正文开始: 一、list简介 C STL&#xf…

成功登上主要中心化交易所 (CEX) 的终极指南:从准备到上市的全面策略

对于区块链项目的创始人而言,成功的代币发行是项目发展的关键一步。尤其是在主要中心化交易所 (CEX) 上上市代币,可以极大地提高项目的曝光度和流动性。然而,CEX 上市过程复杂且充满挑战,需要创始人提前做好充分准备。本文将详细介…

Postman使用教程【项目实战】

目录 引言软件下载及安装项目开发流程1. 创建项目2. 创建集合(理解为:功能模块)3. 设置环境变量,4. 创建请求5. 测试脚本6. 响应分析7. 共享与协作 结语 引言 Postman 是一款功能强大的 API 开发工具,它可以帮助开发者测试、开发和调试 API。…

【绿色版】Mysql下载、安装、配置与使用(保姆级教程)

大家都知道,Mysql安装版的卸载过程非常繁琐,而且卸载不干净会出现许多问题,很容易让大家陷入重装系统的窘境。基于此,博主今天给大家分享绿色版Mysql的安装、配置与使用。 目录 一、Mysql安装、配置与使用 1、下载解压 2、创建…

Day06-角色管理-员工管理

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 1.编辑角色-进入行内编辑2.角色管理-行内编辑-数据缓存3.角色管理-编辑角色-确定取消4.角色管理-删除角色员工管理-页面结构6.员工管理-左侧树7.员工管理-选中首个节…

ubuntu虚拟机安装samba server实现windows访问虚拟机文件

1. ubuntu下安装samba 1.1 安装samba sudo apt install net-tools # 不能使用ifconfig需要先安装net-tools sudo apt-get install samba1.2 配置samba用户 sudo smbpasswd -a guomq # 新增用户guomq,新增的时候需要设置密码,我们根据提示设置即可修改…

Jmeter+Ant+Git+Jenkins持续集成介绍

一 简介 1.什么是ant? ant是构建工具 2.什么是构建 概念到处可查到,形象来说,你要把代码从某个地方拿来,编译,再拷贝到某个地方去等等操作,当然不仅于此,但是主要用来干这个 3.ant的好处 跨平台 -…

程序员学长 | PyCaret,一个超强的 python 库

本文来源公众号“程序员学长”,仅用于学术分享,侵权删,干货满满。 原文链接:PyCaret,一个超强的 python 库 今天给大家分享一个超强的 python 库,PyCaret。 https://github.com/pycaret/pycaret 简介 …