Java中的顺序控制、分支控制、嵌套分支if-else

news2024/11/16 17:51:55

if-else

  • 顺序控制
  • 分支控制if-else
    • 单分支
      • 1.基本语法
      • 2.说明:
      • 3.案例说明
      • 4.流程图
    • 双分支
      • 1.基本语法
      • 2.说明:
      • 3.案例说明
      • 4.流程图
      • 5.练习
    • 多分支
      • 1.基本语法
      • 2.说明:
      • 3.流程图
      • 4.练习
  • 嵌套分支
    • 1.基本介绍
    • 2.基本语法
    • 3.练习

顺序控制

1.介绍:程序从上到下逐行地执行,中间没有任何判断和跳转。
2.Java中定义变量时采用合法的前向引用。如:

public class Test{
	public static void main(String[] args){
	int num1 = 12;
	int num2 = num1 + 2;
	}
}

错误形式:

public class Test{
	public static void main(String[] args){
	int num2 = num1 + 2;
	int num1 = 12;
	}
}

在这里插入图片描述

分支控制if-else

让程序有选择的执行,分支控制有三种:单分支、双分支、多分支。

单分支

1.基本语法

if(条件表达式){
	执行代码块;(可以有多条语句)
	}

2.说明:

当条件表达式为true时,则会执行{ }的代码。如果为false,就不执行。
如果{ }中只有一条语句,则可以不用{ },建议写上{ }

3.案例说明

编写一个程序,可以输入人的年龄,如果该同志的年龄大于18岁,则输出“你年龄大于18,要对自己的行为负责,送入监狱”

import java.util.Scanner;//表示把java.util包下的Scanner类导入
public class comment00{

	//编写一个main方法
	public static void main(String[] args){
	//编写一个程序可以输入人的年龄,如果该同志的年龄大于18岁
	//则输出“你年龄大于18,要对自己的行为负责”
	//
	//思路分析
	//1.接收输入的年龄,定义一个Scanner对象
	//2.把年龄保存到一个变量 int age
	//3.用if判断,输出相应信息
	
	//定义一个Scanner 对象
	Scanner sc = new Scanner(System.in);

	System.out.println("请输入年龄:");
	//把年龄保存到一个变量 int age
	int age = sc.nextInt();
	//用if判断,输出对应信息
	if(age > 18){
		System.out.println("你年龄大于18,要对自己的行为负责");
	}	

	System.out.println("程序继续……");
	}  
}

4.流程图

在这里插入图片描述

双分支

1.基本语法

if(条件表达式){
	执行代码块1;
}
else{
	执行代码块2;
}

2.说明:

当条件表达式成立,即执行代码块1,否则执行代码块2。如果执行代码块中只有一条语句,则可以不用{ },建议写上{ }。

3.案例说明

编写一个程序,可以输入人的年龄,如果该同志的年龄大于18岁,则输出“你年龄大于18,要对自己的行为负责”。否则输出“要提前学会对自己的行为负责”

import java.util.Scanner;//表示把java.util包下的Scanner类导入
public class comment00{

	//编写一个main方法
	public static void main(String[] args){
	//编写一个程序可以输入人的年龄,如果该同志的年龄大于18岁
	//则输出“你年龄大于18,要对自己的行为负责”
	//
	//思路分析
	//1.接收输入的年龄,定义一个Scanner对象
	//2.把年龄保存到一个变量 int age
	//3.用if-else判断,输出相应信息
	
	//定义一个Scanner 对象
	Scanner sc = new Scanner(System.in);

	System.out.println("请输入年龄:");
	//把年龄保存到一个变量 int age
	int age = sc.nextInt();
	//用if判断,输出对应信息
	if(age > 18){
		System.out.println("你年龄大于18,要对自己的行为负责");
	}	
	else{
		System.out.println("要提前学会对自己的行为负责");
	}
	
	}  
}

4.流程图

在这里插入图片描述

5.练习

1)定义两个变量int,判断二者之和,是否能被3又能被5整除,打印提示信息

public class comment00{

	//编写一个main方法
	public static void main(String[] args){
	
	//定义两个变量int,判断二者之和
	//是否能被3又能被5整除,打印提示信息
	//
	//思路分析
	//1.定义两个变量int num1,num2
	//2.定义一个变量int sum = num1 + num2;
	//3.sum % 3 ,5 后等于0,说明可以整除
	//4.使用if-else来提示对应信息
	int num1 = 10;
	int num2 = 21;
	int sum = num1 + num2;
	if(num1 % 3 == 0 && num2 % 5 == 0){
		System.out.println("和可以被3又能被5整除");
	}
	else{
		System.out.println("和不可以被3又能被5整除");
	}

	}  
}

2)判断一个年份是否是闰年,闰年的条件是符合下面二者之一:(1)年份能被4整除但不能被100整除;(2)能被400整除

import java.util.Scanner;//表示把java.util包下的Scanner类导入
public class comment00{

	//编写一个main方法
	public static void main(String[] args){
	
	//判断一个年份是否是闰年,闰年的条件是符合下面二者之一:
	//(1)年份能被4整除但不能被100整除;(2)能被400整除
	//
	//思路分析
	//1.接收输入的年份,定义一个Scanner对象
	//2.定义一个int变量 year保存年份
	//3.(1)(year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)
	Scanner sc = new Scanner(System.in);
	System.out.println("请输入年份:");
	int year = sc.nextInt();

	if((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)){
		System.out.println(year + "是闰年");
	}
	else{
		System.out.println(year + "不是闰年");
	}

	}  
}

多分支

1.基本语法

if(条件表达式1){
	执行代码块1;
}
else if(条件表达式2){
	执行代码块2;
}
.....
else{
	执行代码块n;
}

2.说明:

1)当条件表达式1成立时,即执行代码块1
2)如果表达式1不成立,才去判断表达式2是否成立
3)如果表达式2成立,就执行代码块2
4)以此类推,如果所有的表达式都不成立
5)则默认执行 else 的代码块。注意,只
能有一个执行入口。(只要找到一个执行入口就跳出分支)
6)多分支 可以没有else,如果所有的条件表达式都不成立,则一个执行入口都没有

3.流程图

在这里插入图片描述

4.练习

请输入保国同志的芝麻信用分:
如果:
1.信用分为100分,输出 信用极好;
2.信用分为(80,99]时,输出 信用优秀;
3.信用分为[60,80]时,输出 信用优秀;
4.其他情况,输出 信用不及格
5.请从键盘输入保国的芝麻信用分,并加以判断

import java.util.Scanner;//表示把java.util包下的Scanner类导入
public class comment00{

	//编写一个main方法
	public static void main(String[] args){
	
	Scanner sc = new Scanner(System.in);
	System.out.println("请输入信用分(1-100):");
	int grade = sc.nextInt();
	//如果输入的不是整数,而是hello...
	//这里后面可以使用异常处理机制搞定
	if(grade >=1 && grade <= 100){
		if(grade == 100){
			System.out.println("信用极好");
		}
		else if(grade >80 && grade <=99){
			System.out.println("信用优秀");
		}
		else if(grade >= 60 && grade <=80){
			System.out.println("信用一般");
		}
		else{
			System.out.println("信用不及格");
		}
    }
    else{
    	System.out.println("请重新输入1-100的信用分");
    }

	}  
}

在这里插入图片描述

嵌套分支

1.基本介绍

在一个分支结构中有、又完整的嵌套了另一个完整的分支结构,里面的分支结构称为内层分支,外面的分支结构称为外层分支。建议:不要超过3层(可读性不好)

2.基本语法

if(){
	if(){
	  //if-else...
	}else{
	 //if-else...
	}
}

3.练习

参加歌手比赛,如果初赛成绩大于8.0进入决赛,否则提示淘汰。并且根据性别提示进入男子组或女子组,输入成绩和性别进行判断和输入信息
//double score; char gender;
//接收字符 char gender = sc.next().charAt(0)

import java.util.Scanner;//表示把java.util包下的Scanner类导入
public class comment00{

	//编写一个main方法
	public static void main(String[] args){
	
	//思路:
	//1.创建Scanner对象,接收用户输入
	//2.接收成绩保存到 double score
	//3.用if-else 判断,如果初赛成绩大于8.0进入决赛,否则提示淘汰。
	//4.如果进入到决赛,再接收 char gender 使用if-else输出信息


	System.out.println("请输入初赛成绩:");
	Scanner sc = new Scanner(System.in);
	double score = sc.nextDouble();

	if(score > 8.0){
		System.out.println("请输入性别:");
		char gender = sc.next().charAt(0);
		if(gender == '女'){
			System.out.println("进入女子组决赛");
		}
		else if(gender == '男'){
			System.out.println("进入男子组决赛");
		}
		else{
			System.out.println("性别输入有误,无法进入决赛");
		}
	}
		

		else{
			System.out.println("sorry,你被淘汰");
		}

	}  
}

在这里插入图片描述

出票系统:根据淡旺季的月份和年龄,打印票价
4-10 旺季:
成人(18-60):60
儿童(<18):半价
老人(>60):1/3
淡季:
成人:40
其他:20

import java.util.Scanner;//表示把java.util包下的Scanner类导入
public class comment00{

	//编写一个main方法
	public static void main(String[] args){
	
	//1.创建Scanner对象,接收用户输入
	//2.淡季和旺季双分支,接收月份保存到int month,接收年龄保存到int age
	//3.if-else嵌套
	System.out.println("请输入现下月份(1-12):");
	Scanner sc = new Scanner(System.in);
	int month = sc.nextInt();

	//旺季
	if(month >=4 && month <=10){
		System.out.println("请输入年龄:");
		int age = sc.nextInt();
		if(age >= 18 && age <=60){
			System.out.println("票价60");
		}
		else if(age < 18 && age > 0){
			System.out.println("半价票30");
		}
		else if(age > 60 && age <= 130){
			System.out.println("票价20");
		}
		else{
			System.out.println("输入年龄不符规范,请重新输入");
		}
    }
    //淡季
    else{
    	System.out.println("请输入年龄:");
    	int age = sc.nextInt();
    	if(age >= 18 && age <=60){
			System.out.println("票价40");
		}
		else{
			System.out.println("票价20");
		}
    } 

	}  
}

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

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

相关文章

CMake所学

向大佬lyf学习&#xff0c;先把其8服务器中所授fine 文章目录 前言一、CMakeList.txt 命令1.1 最外层CMakeLists1.1.1 cmake_minimum_required&#xff08;&#xff09;1.1.2 project&#xff08;&#xff09;1.1.3 set&#xff08;&#xff09;1.1.4 add_subdirectory&#xf…

小红书制作视频如何去原视频音乐,视频如何去原声保留背景音乐?

在视频编辑、音乐制作或个人娱乐中&#xff0c;有时我们希望去掉视频中的原声&#xff08;如对话、解说等&#xff09;&#xff0c;仅保留背景音乐。这种处理能让观众更加聚焦于视频的氛围或节奏&#xff0c;同时也为创作者提供了更多创意空间。选择恰当的背景音乐&#xff0c;…

【tower-boot 系列】开源RocketMQ和阿里云rockerMq 4.x和5.x集成 (一)

RocketMQ 简单介绍 阿里云rockerMq 4.x和5.x集成 一、云平台创建实例 参考文档&#xff1a; 阿里云api 阿里云 创建实例 二、skd集成思路 公司用的RocketMQ一般是自建开源apache的RocketMQ和上阿里云的RocketMQ&#xff0c;目前阿里云支持4.x和5.x版本 项目集成思路&…

【MAUI】CollectionView之 垂直网格

App主页或者导航页面中动态按钮的垂直网格布局 在 XAML 中,CollectionView 可以通过将其 ItemsLayout 属性设置为 VerticalGrid,在垂直网格中显示其项: <CollectionView ItemsSource="{Binding Monkeys}"ItemsLayout

链表面试编程题

1. 删除链表中等于给定值 val 的所有节点。 203. 移除链表元素 - 力扣&#xff08;LeetCode&#xff09; 2. 反转一个单链表。206. 反转链表 - 力扣&#xff08;LeetCode&#xff09; 3. 给定一个带有头结点 head 的非空单链表&#xff0c;返回链表的中间结点。如果有两个中间…

FOCShield v2.0.4原理图

1.FOCShield v2.0.4原理图,开源原文件用AD制作。用 AD09可以打开。 主要部分为 1.电机驱动芯片部分 2.电流采样部分

2024 全新体验:国学心理 API 接口来袭

在当今快节奏的生活中&#xff0c;人们对于心理健康越来越重视。而研究发现&#xff0c;国学心理学乃至传统文化中的思想智慧&#xff0c;对于人们的心理健康有着独特且深远的影响。为了让更多人能够体验到国学心理的魅力&#xff0c;2024年全新推出的国学心理 API 接口&#x…

Efficient Knowledge Infusion via KG-LLM Alignment

文章目录 题目摘要引言相关作品方法论实验设置和结果分析结论局限性附录 题目 通过KG-LLM比对实现高效的知识注入 论文地址&#xff1a;https://aclanthology.org/2024.findings-acl.176.pdf 摘要 为了解决大型语言模型中特定领域知识匮乏的问题&#xff0c;知识图检索扩充方…

27 Vue3之unocss原子化

前置知识 什么是原子化 CSS 原子化 CSS 是一种 CSS 的架构方式&#xff0c;它倾向于小巧且用途单一的 class&#xff0c;并且会以视觉效果进行命名。 为什么使用 原子化 CSS 传统方案 制作原子化 CSS 的传统方案其实就是提供所有你可能需要用到的 CSS 工具。例如&#xff0c…

ES索引生命周期管理

基于如何 定时删除ES索引过期数据 而引发的一系列关于ES索引生命周期管理ILM(Index Lifecycle Management)的学习 快速上手 &#xff1a;定时删除ES索引中的过期数据 1. ILM解决什么问题&#xff1f; ES从6.7版本引入ILM&#xff0c;通过ILM可以解决哪些问题呢? 自动新建…

Python 课程22-Pillow

前言 Pillow 是一个 Python 图像处理库&#xff0c;是 Python Imaging Library (PIL) 的升级版。Pillow 提供了对常见图像文件格式&#xff08;如 PNG、JPEG、GIF 等&#xff09;的支持&#xff0c;并允许你进行图像裁剪、调整大小、旋转、滤镜应用、文本添加等操作。Pillow 广…

Applio:颠覆语音克隆的AI黑科技!

Applio&#xff1a;颠覆语音克隆的AI黑科技&#xff01; Applio是一个神奇的AI语音克隆工具✨&#xff0c;提供超过20,000种声音模型&#x1f3a4;&#xff0c;让你轻松创造独特音色&#x1f3b6;&#xff01;开源社区欢迎所有人参与&#xff0c;共同探索AI音频的无限可能&…

蓝桥杯备赛---2.新建工程

推荐根据视频进行工程建立 开发板资源简介&工程模板建立_哔哩哔哩_bilibili 目录 推荐根据视频进行工程建立 1.点击"File"下的"New Project"新建一个工程 ​编辑 2. 查看官方给的数据手册&#xff0c;选择对于的单片机型号 3. 查看原理图&#…

银河麒麟操作系统中设置进程堆栈大小的方法

银河麒麟操作系统中设置进程堆栈大小的方法 1、临时修改堆栈大小步骤一&#xff1a;查看当前堆栈大小步骤二&#xff1a;修改堆栈大小 2、永久修改堆栈大小步骤一&#xff1a;查看当前堆栈大小&#xff08;可选&#xff09;步骤二&#xff1a;编辑配置文件步骤三&#xff1a;注…

论文精读--Two-Stream Convolutional Networks for Action Recognition in Videos

对于单张图片&#xff0c;丢进卷积和全连接层直接得出分类结果就行 但对于视频&#xff0c;早期的一些工作把视频中的一些关键帧抽取出来&#xff0c;把一个个帧通过网络&#xff0c;最后把结果合并&#xff0c;或者把帧叠起来&#xff0c;一起丢进网络。在网络中进行early fu…

【C++】模拟实现红黑树

&#x1f984;个人主页:修修修也 &#x1f38f;所属专栏:实战项目集 ⚙️操作环境:Visual Studio 2022 目录 一.了解项目功能 二.逐步实现项目功能模块及其逻辑详解 &#x1f4cc;实现RBTreeNode类模板 &#x1f38f;构造RBTreeNode类成员变量 &#x1f38f;实现RBTreeNode类构…

【数据结构】堆(Heap)详解----定义堆、初始化,删除、插入、销毁、判空、取堆顶

文章目录 一、堆的概念及其性质&#xff1a;堆的概念&#xff1a;堆的性质&#xff1a; 二、堆的定义及其基础操作的代码实现&#xff08;C语言版&#xff09;1.定义堆2.堆的初始化3.堆的销毁4.堆的插入5.堆的删除6.取堆顶的数据7.堆的数据个数8.堆的判空 总结&#xff1a; 提示…

Python开发环境配置(mac M2)

1. 前言 作为一名程序员&#xff0c;工作中需要使用Python进行编程&#xff0c;甚至因为项目需要还得是不同版本的Python如何手动管理多个版本的Python&#xff0c;如何给Pycharm&#xff08;IDE&#xff09;配置对应的interpreter等&#xff0c;都成为一个 “不熟练工” 的难…

【面向对象】设计模式概念和分类

零.前提提要 本文章是我考中级软件设计师时的笔记&#xff0c;基本都是一些自己的思路和见解&#xff0c;现记录一下&#xff0c;希望可以帮助到即将考证的同学。 一.面向对象设计模式的概念 二.面向对象的设计模式分类 设计模式确定了所包含的类和实例、他们的角色和写作方式以…

AMBER学习记录--使用Multiwfn计算有机小分子的RESP电荷--问题及解决

1 ORCAMultiwfn在wsl中的安装 ORCA的安装参考量子化学程序ORCA的安装方法 - 思想家公社的门口&#xff1a;量子化学分子模拟二次元 (sobereva.com) Multiwfn的安装 参考保姆级安装Linux版Multiwfn教程_multiwfn安装过程-CSDN博客 2 计算C3G的RESP电荷 2.1从pubchem上下载C3G的…