java入门-分支与循环

news2024/11/27 18:43:37

分支结构

img

分支结构是解决程序选取分支走不同的路线,增加了程序开发的灵活性。java的分支主要由if和switch这两种结构实现。

if 语句

if是分支中最常用的语法,它从形式上有三种形态:

if 结构

结构

img

语法

if(表达式){

//代码块

}

程序案例
int x = 3;
System.out.println("if start");
if(x>3) {
	System.out.println("x>3");
}
System.out.println("first if end");
if(x==3) {
	System.out.println("x==3");
}
System.out.println("last if end");

运行结果

if start
first if end
x==3
last if end

if … else

选择分支,有两条分支。

结构

img

语法

if(表达式){

​ //代码块

}else{

//代码块

}

程序案例
int x = 3;
System.out.println("if start");
if (x >= 3) {
	System.out.println("x>=3");
} else {
	System.out.println("x<3");
}
System.out.println("if end");

运行结果

if start
x>=3
if end

多分支

有多个分支结果,扩展的if … else

结构

img

语法

if(表达式){

//代码块

}else if(表达式){

​ //代码块

}else{

//代码块

}

程序案例
int x = 3;
System.out.println("if start");
if (x > 3) {
	System.out.println("x >= 3");
} else if (x < 3) {
	System.out.println("x < 3");
} else {
	System.out.println("x == 3");
}
System.out.println("if end");
运行结果
if start
x>=3
if end

switch语句

如果多分支的条件是整数或者字符串,可以使用switch。switch语句更加结构化。

结构

img

语法

int key = 1; //定义整型key

switch (key) {

case 1:

​ //代码块

break;

case 2:

​ //代码块

break;

default:

break;

}

程序案例

Scanner sc = new Scanner(System.in);
    System.out.print("请输入学生成绩: ");
    int score = sc.nextInt();
    int key = score / 10;
    switch (key) {
    case 10:
    case 9:
        System.out.println("A");
        break;
    case 8:
        System.out.println("B");
        break;
    case 7:
    case 6:
        System.out.println("C");
        break;
    case 5:
    case 4:
    case 3:
    case 2:
    case 1:
    case 0:
        System.out.println("D");
        break;
    default:
        System.out.println("不合法");
        break;
    }
sc.close();

运行结构

请输入学生成绩: 78
C

switch的问题

case穿透

case中没有写break语句,继续向下运行不做判断。

case 10:    //case 10 穿透进入case9
case 9:
    System.out.println("A");
break;
switch的支持类型

注意: switch的类型支持除long之外的所有整型,String类型和枚举类型。

img


循环结构

循环结构是指在程序中需要反复执行某个功能而设置的一种程序结构。java中循环有while和for两种形式。

while循环

按照循环条件判断的先后分为while循环和do…while循环。

while循环

先判断条件,成立进入循环体,否则结束循环。

结构

img

语法

while(表达式){

//循环体

}

程序案例
int count = 0;
System.out.println("while start:");
while(count < 10) {
	  count++;
	  System.out.println("count=" + count);
}
System.out.println("while end:");

运行结果

while start:
count=1
count=2
count=3
count=4
count=5
count=6
count=7
count=8
count=9
count=10
while end:

do…while

先进入循环体,后判断条件,成功继续执行,失败结束循环。

结构

do{

//循环体

}while(表达式);

程序案例
int count = 0;
System.out.println("while start:");
do {
	count++;
	System.out.println("count=" + count);
} while (count < 10);
System.out.println("while end:");
运行结构
while start:
count=1
count=2
count=3
count=4
count=5
count=6
count=7
count=8
count=9
count=10
while end:

for循环

结构

img

语法

for(变量初始值; 条件; 更新变量值){

//循环体

}

程序案例

int s = 0;
for (int i = 0; i < 10; i++) {
	s += i;
}
System.out.println("s=" + s);

运行结果

s=45

几个关键字

break

作用: 跳出当前循环/跳出switch结构。

程序案例
 for (int i = 0; i < 10; i++) {
   if (i == 5) {
		 break;
}
    System.out.println(i);
 }
System.out.println("loop end");
运行结果
0
1
2
3
4
loop end

continue

作用: 跳过当前循环的变量,执行更新的变量,即跳过当此循环到下一次。

程序案例
for (int i = 0; i < 10; i++) {
	if (i == 5) {
		continue;
	}
System.out.println(i);
}
System.out.println("loop end");

运行结果

0
1
2
3
4
6
7
8
9
loop end

return

作用: return一方面用在循环语句中来结束循环,另一方面用来终止函数的执行或者退出类的方法,并把控制权返回该方法的调用者。

如果方法有返回类型,则return的返回该类型的值;如果没有返回值,则可以使用没有返回值的return的语句。

程序案例
for (int i = 0; i < 10; i++) {
	if (i == 5) {
		break;
	}
	System.out.println(i);
}
System.out.println("loop end");

运行结果

0
1
2
3
4

循环嵌套

在实际开发中会在循环中嵌套循环,即循环体依然是循环,熟练掌握嵌套循环可以提升编码能力,解决更复杂的问题。

案例1

案例1:使用*号打印一个三角形

img

for(int i =1;i<9;i++) {
	for(int j = 1; j<=i;j++) {
		System.out.print("*");
	}
	System.out.println();
}

运行结果

img

案例2

打印一个9x9乘法表

img

for (int i = 1; i <=9; i++) {
	for (int j = 1; j <= i; j++) {
		System.out.print(j + "x" + i + "=" + (j * i) + "\t");
	}
	System.out.println();
}

运行结果

img

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

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

相关文章

基于java+SpringBoot+Vue的学生考勤管理系统设计与实现

基于javaSpringBootVue的学生考勤管理系统设计与实现 开发语言: Java 数据库: MySQL技术: SpringBoot MyBatis工具: IDEA/Eclipse、Navicat、Maven 系统展示 前台展示 登录注册&#xff1a;支持学生、教师和管理员登录和注册。 个人中心&#xff1a;用户可以查看和更新个…

C语言-冒泡排序算法

题目描述 设计一个程序&#xff0c;实现冒泡排序算法&#xff0c;并输出{9,8,7,6,5,4,3,2,1,0} 的排序过程。 输出 每个排序过程输出一行&#xff0c;直到排序完成。 样例输出 Expected 9 8 7 6 5 4 3 2 1 0 0 9 8 7 6 5 4 3 2 1 0 1 9 …

C#学习笔记7:C#面向对象编程方法(1)

今日继续我的C#学习笔记 主要用实际代码编程来学习研究C#面向对象的编程方法&#xff1a;直接看代码及注释即可&#xff1a; 目录 1、对类与对象概念的快速认知&#xff1a; 2、类和对象成员访问控制&#xff1a; 3、类的构造函数和析构函数&#xff1a; 4、类的属性&#xff…

GaussDB云数据库极简版安装与使用-新手指南

一、前言 作为一款领先的企业级数据库管理系统&#xff0c;GaussDB 提供了强大的性能、高度可靠性和丰富的功能&#xff0c;是企业构建可靠、高性能的数据库解决方案的理想选择。 本文主要针对高校和个人测试环境&#xff0c;介绍极简版安装和使用过程&#xff0c;更加适合高…

git 修改历史 commit message

目录 1&#xff0c;修改当前的2&#xff0c;修改历史的1&#xff0c;先查看 log2&#xff0c;开始修改 3&#xff0c;其他注意点1&#xff0c;中途不想修改了2&#xff0c;commit ID 会发生变化3&#xff0c;推送远程4&#xff0c;精准定位 1&#xff0c;修改当前的 直接使用下…

Netty核心原理剖析与RPC实践11-15

Netty核心原理剖析与RPC实践11-15 11 另起炉灶&#xff1a;Netty 数据传输载体 ByteBuf 详解 在学习编解码章节的过程中&#xff0c;我们看到 Netty 大量使用了自己实现的 ByteBuf 工具类&#xff0c;ByteBuf 是 Netty 的数据容器&#xff0c;所有网络通信中字节流的传输都是…

哥哥张国荣逝世21年,唐唐继续发文怀念

一代巨星张国荣&#xff08;哥哥&#xff09;在21年前的愚人节&#xff08;2003年4月1日&#xff09;从香港文华东方酒店一跃而下&#xff0c;终年46岁&#xff0c;当年他的离开令很多歌迷影迷都感到悲痛&#xff0c;当中亦包括了他…… 他就是唐鹤德&#xff08;唐唐&#xff…

FPGA高端图像处理开发板-->鲲叔4EV:12G-SDI、4K HDMI2.0、MIPI等接口谁敢与我争锋?

目录 前言鲲叔4EV----高端FPGA图像处理开发板核心板描述底板描述配套例程源码描述配套服务描述开发板测试视频演示开发板获取 前言 在CSDN写博客传播FPGA开发经验已经一年多了&#xff0c;帮助了不少人&#xff0c;也得罪了不少人&#xff0c;有的人用我的代码赢得了某些比赛、…

SpringBoot整合Netty整合WebSocket-带参认证

文章目录 一. VectorNettyApplication启动类配置二.WebSocketServerBoot初始化服务端Netty三. WebsocketServerChannelInitializer初始化服务端Netty读写处理器四.initParamHandler处理器-去参websocket识别五.MessageHandler核心业务处理类-采用工厂策略模式5.1 策略上下文 六…

【C语言】联合和枚举

个人主页点这里~ 联合和枚举 一、联合体1、联合体类型的声明2、联合体成员的特点3、与结构体对比4、计算联合体大小 二、枚举1、枚举的声明2、枚举的优点3、枚举类型的使用 一、联合体 1、联合体类型的声明 联合体的定义与结构体相似&#xff0c;但是联合体往往会节省更多的空…

分布式光伏电力监控系统解决方案

安科瑞薛瑶瑶18701709087 分布式光伏现状 自发自用、余电上网模式 完全自发自用&#xff08;防逆流&#xff09;模式 全额上网模式 0.4kV并网系统 此图为车间新建屋顶分布式光伏发电项目&#xff0c;建设装机容量为1103.46kWp。组件采用单晶硅功率515Wp及550Wp组件&#xff…

文献学习-25-综合学习和适应性教学:用于病理性胶质瘤分级的多模态知识蒸馏

Comprehensive learning and adaptive teaching: Distilling multi-modal knowledge for pathological glioma grading Authors: Xiaohan Xing , Meilu Zhu , Zhen Chen , Yixuan Yuan Source: Medical Image Analysis 91 (2024) 102990 Key words: 知识蒸馏、模态缺失、胶质瘤…

js实现简单的添加移除水印效果

一、实现场景 在做某些内部管理系统时&#xff0c;需求可能要求增加水印&#xff0c;水印内容通常可能是logo或者用户名手机号。实现效果如图&#xff1a; 以下步骤可实现简单添加或者移除水印&#xff0c;并且可以自定义样式、旋转角度等。 二、实现方式 1、先新建一个js…

期权定价模型有哪些?

常见的期权定价模型有BSM模型、二叉树模型以及蒙特卡洛定价模型。 BS模型 在一系列的假设条件下&#xff0c;该模型将期权的价值表示成为标的资产价格、行权价格、无风险利率、期权剩余期限和标的资产波动率的函数。即一旦定量的给出上述5个影响因子的数值&#xff0c;就可以…

鸿蒙OS开发实例:【ArkTS类库多线程CPU密集型任务TaskPool】

CPU密集型任务是指需要占用系统资源处理大量计算能力的任务&#xff0c;需要长时间运行&#xff0c;这段时间会阻塞线程其它事件的处理&#xff0c;不适宜放在主线程进行。例如图像处理、视频编码、数据分析等。 基于多线程并发机制处理CPU密集型任务可以提高CPU利用率&#x…

【PFA树脂交换柱】实验室高纯PFA材质过滤柱耐受电子级氢氟酸含氟树脂层析柱

PFA离子交换柱&#xff0c;也叫PFA层析柱、PFA过滤柱等&#xff0c;其原理是利用吸附剂对不同化合物有不同吸附作用和不同化合物在溶剂中的不同溶解度&#xff0c;用适应溶剂使混合物在填有吸附剂的柱内通过&#xff0c;使复杂的混合物达到分离和提纯的目的。 柱体为透明PFA材…

Linux:运营商在网络中扮演的角色

文章目录 ip目前的问题ip目前的几种解决方案私有ipVS公有ip运营商再谈ip划分运营商的角度看ip 本篇总结的是运营商在网络中扮演的角色 ip目前的问题 在目前看来&#xff0c;ip最大的问题是ip号不够用了&#xff0c;那这个问题如何解决呢&#xff1f; 在之前的内容中有子网掩…

【GlobalMapper精品教程】073:像素到点(Pixels-to-Points)从无人机图像轻松生成点云

文章目录 一、工具介绍二、生成点云三、生成正射四、生成3D模型五、注意事项一、工具介绍 Global Mapper v19引入的新的像素到点工具使用摄影测量原理,从重叠图像生成高密度点云、正射影像及三维模型。它使LiDAR模块成为已经功能很强大的的必备Global Mapper扩展功能。 打开…

BabyAGI源码解读(1)-主体配置部分

1. BabyAGI概览 babyAGI是一个AI驱动的任务管理系统&#xff0c;其中babyagi.py脚本中定义了整个的流程&#xff0c;使用OpenAI的NLP能力根据目标创建新的任务&#xff0c;使用Chroma和Weaviate作为上下文存储和获取任务结果。 babyAGI实际上是一个死循环&#xff0c;它执行以…

每日一题(力扣136):只出现一次的数字

利用哈希&#xff1a;时间复杂度O(n)&#xff0c;空间复杂度O(n) class Solution { public:int singleNumber(vector<int>& nums) {if (nums.size() 1){return nums[0];}unordered_map<int, int> map;int len nums.size();for (int i 0; i < len; i){if…