Java学习笔记(四)——程序控制结构

news2024/11/19 23:33:33

一、顺序控制

二、分支控制

(一)单分支

(二)双分支

(三)多分支

(四)嵌套分支

 (五)switch分支结构

(六)if和switch的选择

三、循环控制

(一)for循环

(二)while循环

(三)do while循环

(四)多重循环控制

 (五)跳转控制语句-break

(六)跳转控制语句-continue

(七)跳转控制语句-return

一、顺序控制

程序从上到下逐行地执行,中间没有任何判断和跳转。

二、分支控制

让程序有选择的执行。

(一)单分支

基本语法:

if(条件表达式){

        执行代码块;

}

说明:当条件表达式为true时,就会执行{}的代码;如果为false就不执行。

import java.util.Scanner; //表示把java.util下的Scanner类导入

public class If01{

	public static void main(String[] args){
		Scanner myScanner = new Scanner(System.in);
		System.out.print("请输入年龄:");
		int age = myScanner.nextInt(); //接收用户输入int
		if(age > 18){
			System.out.println("你年龄大于18,要对自己的行为负责");
		}
		System.out.println("程序继续...");
	}
}

(二)双分支

基本语法:

if(条件表达式){

        执行代码块1;

}else{

        执行代码块2;

}

说明:当条件表达式为true时,就会执行代码块1,否则执行代码块2。

import java.util.Scanner; //表示把java.util下的Scanner类导入

public class If02{

	public static void main(String[] args){
		Scanner myScanner = new Scanner(System.in);
		System.out.print("请输入年龄:");
		int age = myScanner.nextInt(); //接收用户输入int
		if(age > 18){
			System.out.println("你年龄大于18,要对自己的行为负责");
		}else{
			System.out.println("你的年龄不大,这次放过你了");
		}
		System.out.println("程序继续...");
	}
}

(三)多分支

基本语法:

if(条件表达式1){

        执行代码块1;

}else if(条件表达式2){

        执行代码块2;

}

......

else{

        执行代码块n;

}

注意:多分支可以没有else,如果所有的条件表达式都不成立,则一个执行入口都没有

import java.util.Scanner; 

public class If03{

	public static void main(String[] args){
		Scanner myScanner = new Scanner(System.in);
		System.out.print("请输入芝麻信用分:");
		int grade = myScanner.nextInt(); 
		// 数据正确性验证
		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,请重新输入:)");
		}
	}
}

(四)嵌套分支

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

基本语法:

if(){

        if(){

        }else{

        }

}

import java.util.Scanner; 

public class If04{

	public static void main(String[] args){
		Scanner myScanner = new Scanner(System.in);
		System.out.print("请输入该歌手的初赛成绩:");
		double score = myScanner.nextDouble(); 
		// 数据正确性验证
		if(score >= 0 && score <=10){
			if(score > 8.0){
				System.out.print("请输入性别:");
				char sex = myScanner.next().charAt(0); 
				if(sex == '男'){
					System.out.println("恭喜进入复赛男子组");
				}else if(sex == '女'){
					System.out.println("恭喜进入复赛女子组");
				}else{
					System.out.println("性别输入有误,请重新输入:)");
				}
			}else{
				System.out.println("不好意思,你被淘汰了");
			}
		}else{
			System.out.println("初赛成绩需要在0-10,请重新输入:)");
		}
	}
}

 (五)switch分支结构

基本语法:

switch(表达式){

        case 常量1: 语句块1;break;

        case 常量2: 语句块2;break;

        ......

        case 常量n: 语句块n;break;

        default:default语句块;break;

}

1、switch关键字,表示switch分支

2、表达式对应一个值

3、case 常量1:当表达式等于常量1,就执行语句块1

4、break:表示退出switch

5、如果和case 常量1匹配,就执行语句块1,如果没有匹配,就继续匹配case 常量2

6、如果一个都没有匹配上,执行default

import java.util.Scanner; 

public class Switch01{

	public static void main(String[] args){
		Scanner myScanner = new Scanner(System.in);
		System.out.print("请输入一个字符(a-g):");
		char ch = myScanner.next().charAt(0);
		switch(ch){
			case 'a':
				System.out.println("星期一");
				break;
			case 'b':
				System.out.println("星期二");
				break;
			case 'c':
				System.out.println("星期三");
				break;
			case 'd':
				System.out.println("星期四");
				break;
			case 'e':
				System.out.println("星期五");
				break;
			case 'f':
				System.out.println("星期六");
				break;
			case 'g':
				System.out.println("星期七");
				break;
			default:
				System.out.println("输入的字符不正确,没有匹配");
				break;

		} 
		
	}
}

细节:

1、表达式数据类型,应和case后的常量类型一致,或者是可以自动转成可以相互比较的,比如输入的字符是字符,而常量是int

2、switch(表达式)中表达式的返回值必须是:byte,short,int,char,enum(枚举),String

3、case子句中的值必须是常量或常量表达式,而不能是变量

4、default子句是可选的,当没有匹配的case时,执行default

5、break语句用来在执行完一个case分支后使程序跳出switch语句块。如果没有写break,程序会顺序执行到switch结尾,除非遇到break。(穿透)

import java.util.Scanner; 

public class Switch04{

	public static void main(String[] args){
		// 根据用于指定月份,打印该月份所属季节。3,4,5春季 6,7,8夏季 9,10,11秋季 12,1,2,冬季
		Scanner myScanner = new Scanner(System.in);
		System.out.print("请输入月份(0-12):");
		int month = myScanner.nextInt();
		switch(month){
			case 3:
			case 4:
			case 5:
				System.out.println("春季");
				break;
			case 6:
			case 7:
			case 8:
				System.out.println("夏季");
				break;
			case 9:
			case 10:
			case 11:
				System.out.println("秋季");
				break;
			case 12:
			case 1:
			case 2:
				System.out.println("冬季");
				break;
			default:
				System.out.println("输入的月份不正确");
				break;

		} 
		
	}
}

(六)if和switch的选择

1、如果判断的具体数值不多,而且符合byte,short,int,char,enum,String这6种类型。虽然两个语句都可以使用,建议使用switch语句。

2、其他情况:对区间判断,对结果为boolean类型判断,使用if,if的使用范围更广。

三、循环控制

(一)for循环

基本语法:

for(循环变量初始化;循环条件;循环变量迭代){

        循环操作;

}

1、for关键字,表示循环控制

2、for有四要素:(1)循环变量初始化(2)循环条件(3)循环操作(4)循环变量迭代

3、循环操作,这里可以有多条语句,也就是我们要循环执行的代码

细节:

1、循环条件是返回一个布尔值的表达式

2、for(;循环判断条件;)中的初始化和变量迭代可以写到其他地方,但是两边的分号不能省略

3、循环初始值可以有多条初始化语句,但要求类型一样,并且中间用逗号隔开,循环变量迭代也可以有多条变量迭代语句,中间用逗号隔开。

import java.util.Scanner;
public class For01{

	public static void main(String[] args){
		// 1-100中能被num整除的数的个数、和
		Scanner myScanner = new Scanner(System.in);
		int num = myScanner.nextInt();
		int start = 1;
		int end = 100;
		int count = 0;
		int sum = 0;
		for(int i = start; i <= end; i++){
			if(i % num == 0){
				count++;
				sum += i;
			}
		}
		System.out.println("count=" + count + ",sum=" + sum);
	}
}
// 输出小写的a-z以及大写的A-Z
public class Homework07{

	public static void main(String[] args){
		
		for(char i = 'a'; i <= 'z'; i++){
			System.out.print(i + " ");
		}
		System.out.println();
		for(char i = 'A'; i <= 'Z'; i++){
			System.out.print(i + " ");
		}
	}
}

(二)while循环

基本语法:

while(循环条件){

        循环体(语句);

        循环变量迭代;

};

说明:while循环也有四要素(循环变量初始化、循环条件、循环操作、循环变量迭代),只是四要素放的位置不一样。

细节:1、循环条件是返回一个布尔值的表达式 2、while循环是先判断再执行语句

import java.util.Scanner;
public class While01{

	public static void main(String[] args){
		// 1-100中所有能被num整除的数
		Scanner myScanner = new Scanner(System.in);
		int num = myScanner.nextInt();
		int end = 100;
		int i = 1;
		while(i <= end){
			if(i % num == 0){
				System.out.println(i);
			}
			i++;
		}
	}
}

(三)do while循环

基本语法:

do{

        循环体(语句);

        循环变量迭代;

}while(循环条件);

说明:先执行再判断,至少执行一次


public class DoWhile02{

	public static void main(String[] args){
		// 统计1-200中能被5整除但不能被3整除的数的个数
		int end = 200;
		int i = 1;
		int count = 0;
		do{
			if(i % 5 == 0 && i % 3 != 0){
				count++;
			}
			i++;
		}while(i <= end);
		System.out.println("count=" + count);
	}
}

(四)多重循环控制

1、将一个循环放在另一个循环体内,就形成了嵌套循环。其中,for,while,do..while均可以作为外层循环和内层循环。(建议一般使用两层,最多不要超过3层,否则代码的可读性很差)

2、实质上,嵌套循环就是把内层循环当成外层循环的循环体。当只有内层循环的循环条件为false时,才会完全跳出内层循环,才可结束外层的当次循环,开始下一次的循环。

3、设外层循环次数为m次,内层为n次,则内层循环体实际上需要执行m*n次。

 九九乘法表:

public class MulFor02{

	public static void main(String[] args){
		
		for(int i = 1; i <= 9; i++){
			for(int j = 1; j <= i; j++){
				System.out.print(j + "*" + i + "=" + j * i + '\t');
			}
			System.out.println('\n');
		}
	}
}

 (五)跳转控制语句-break

break语句用于终止某个语句块的执行,一般使用在switch或者循环中。

 注意事项和说明:

1、break语句出现在多层嵌套的语句块中时,可以通过标签指明要终止的是哪一层语句块

2、标签的基本使用:

label1:{ ......

label2:        {......

label3:                {   ......

                                break label2;

                                ......

                            }

                     }

              }

(1)break语句可以指定退出哪层

(2)label1是标签,由程序员指定

(3)break后指定到哪个label就退出到哪里

(4)实际开发中,尽量不要使用标签

(5)如果没有指定break,默认退出最近的循环体


public class Break01{

	public static void main(String[] args){
		
		label1:
		for(int i = 0; i < 4; i++){
			label2:
			for(int j = 0; j < 10; j++){
				if(j == 2){
					break label1;
				}
				System.out.println("j = " + j);
			}
		}
	}
}

(六)跳转控制语句-continue

1、continue语句用于结束本次循环,继续执行下一次循环

2、continue语句出现在多层嵌套的循环语句体中时,可以通过标签指明要跳过的是哪一层循环,这个和前面的标签的使用规则一样。


public class Continue01{

	public static void main(String[] args){
		
		label1:
		for(int i = 0; i < 4; i++){
			label2:
			for(int j = 0; j < 10; j++){
				if(j == 2){
					// continue; //等价于continue label2
					// continue label2;
					continue label1;
				}
				System.out.println("j = " + j);
			}
		}
	}
}

(七)跳转控制语句-return

return使用在方法,表示跳出所在的方法。如果return写在main方法,退出程序。


public class Return01{

	public static void main(String[] args){
		
		for(int i = 1; i <= 5; i++){
			if(i == 3){
				System.out.println("hello" + i);
				return;
			}
			System.out.println("hello world!");
		}
		System.out.println("go on...");
	}
}

 

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

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

相关文章

Android Studio快速实现Flutter应用的国际化和多语言支持

文章目录 Flutter实现国际化和多语言支持添加依赖库Android Studio 安装flutter Intl插件项目初始化增加语言app中使用国际化在应用中切换语言&#xff1a;运行应用 总结easy_localization 插件intl 包Flutter GetX 包flutter_i18n 插件JSON 文件 Flutter实现国际化和多语言支持…

利用ArcGIS获取每一个冰川的中心位置经纬度坐标:要素转点和要素折点转点的区别

问题概述&#xff1a;下图是天山地区的冰川的分布&#xff0c;我们可以看到每一条冰川是一个面要素&#xff0c;要求得到每一个冰川&#xff08;面要素&#xff09;的中心经纬度坐标。 1.采用要素转点功能 选择工具箱的【数据管理工具】-【要素】-【要素转点】。完成之后再采用…

疯狂堆料!技嘉钛雕Z790 AORUS PRO X主板图赏

技嘉推出了钛雕Z790 AORUS PRO X主板。 现在这款新品已经来到了我们评测室&#xff0c;下面为大家带来图赏。 技嘉钛雕Z790 AORUS PRO X主板采用新一代超耐久显卡插槽&#xff0c;约58KG承重能力、内衬保护显卡PCB。 其采用1812相供电设计&#xff0c;4根双通道DDR5内存插槽&am…

药物滥用第四篇介绍

OXY&#xff1a; 羟考酮&#xff08;Oxycodone&#xff0c;OXY&#xff09;&#xff0c;分子式为C18H21NO4&#xff0c;是一种半合成的蒂巴因衍生物。羟考酮为半合成的纯阿片受体激动药&#xff0c;其作用机制与吗啡相似&#xff0c;主要通过激动中枢神经系统内的阿片受体而起镇…

FastAdmin框架实现数据表的增删改查

目录 简介 增加数据 修改数据 控制器&#xff08;controller&#xff09;代码&#xff1a; 查询数据 控制器&#xff08;controller&#xff09;代码&#xff1a; 模型&#xff08;model&#xff09;代码&#xff1a; 删除数据 控制器&#xff08;controller&#xff0…

2023年农村市场风口新商机:互联网+认养模式商业模式解析

背景&#xff1a;随着城市化进程的不断加快&#xff0c;人们对物质生活的要求和品质日益增高&#xff0c;特别是在疫情过亲身经历过病痛的折磨后&#xff0c;大家对自己的更加爱惜了&#xff0c;今天&#xff0c;微三云营销总监胡佳东发现一套2023年创业新项目新商机&#xff1…

选型销售管理软件要注意哪些问题?

近些年来&#xff0c;创新型企业大量涌现成为国内经济增长的新动能。同时管理者发现很快就遇到了发展瓶颈&#xff0c;为了保证业务的快速开展&#xff0c;引入销售管理软件的需求十分强烈。那么&#xff0c;选型销售管理软件要注意哪些问题? 一、直指痛点的功能 对于多数企…

APP开发成本的影响因素

在温州或中国任何地方开发APP的成本取决于多个因素&#xff0c;包括应用的规模、功能、设计、复杂性以及所需的技术和人力资源。以下是一些可能影响APP开发成本的主要因素&#xff0c;希望对大家有所帮助。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司&#xf…

风电机浪涌保护器的防雷作用和意义

风电是一种利用风能转化为电能的清洁新能源&#xff0c;具有节约资源、减少污染、降低碳排放等优点。随着风电技术的发展和应用&#xff0c;风电场的规模和数量也不断增加&#xff0c;为人类提供了可持续的电力供应。然而&#xff0c;风电场也面临着一些挑战和风险&#xff0c;…

KingBase库模式表空间和客户端认证(kylin)

库、模式、表空间 数据库 数据库基集簇与数据库实例 KES集簇是由单个KES实例管理的数据库的集合KES集簇中的库使用相同的全局配置文件和监听端口、共享相关的进程和内存结构同一数据库集簇中的进程、相关的内存结构统称为实例 数据库 数据库是一个长期存储在计算机内的、有…

PDF编辑阅读 PDF Expert v3.5.2

PDF Expert是由Readdle开发的一款专业的PDF编辑和阅读工具。它可以帮助用户在Mac、iPad和iPhone等设备上查看、注释、编辑、填写和签署PDF文档。 以下是PDF Expert的特点&#xff1a; PDF编辑&#xff1a;PDF Expert提供了丰富的PDF编辑功能&#xff0c;包括添加、删除、移动…

学习pytorch14 损失函数与反向传播

神经网络-损失函数与反向传播 官网损失函数L1Loss MAE 平均MSELoss 平方差CROSSENTROPYLOSS 交叉熵损失注意code 反向传播在debug中的显示code B站小土堆pytorch视频学习 官网 https://pytorch.org/docs/stable/nn.html#loss-functions 损失函数 L1Loss MAE 平均 import to…

2022年亚太杯APMCM数学建模大赛A题结晶器熔剂熔融结晶过程序列图像特征提取及建模分析求解全过程文档及程序

2022年亚太杯APMCM数学建模大赛 A题 结晶器熔剂熔融结晶过程序列图像特征提取及建模分析 原题再现&#xff1a; 连铸过程中的保护渣使钢水弯液面隔热&#xff0c;防止钢水在连铸过程中再次氧化&#xff0c;控制传热&#xff0c;为铸坯提供润滑&#xff0c;并吸收非金属夹杂物…

基于Java的旅游网站系统设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序&#xff08;小蔡coding&#xff09; 代码参考数据库参考源码获取 前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者&am…

Linux下等待队列、定时器、中断综合应用——按键控制LED

本文通过按键控制LED的亮灭&#xff0c;按键每按一次&#xff0c;LED的状态就发生一次变化。 等待队列是为了在按键有动作发生时再读取按键值&#xff0c;而不是一直读取按键的值&#xff0c;使得CPU的占用率很高。 定时器在本实验中引入是为了按键消抖&#xff0c;在键值稳定了…

Node.js中常用的设计模式有哪些?

本文由葡萄城技术团队首发。转载请注明出处&#xff1a;葡萄城官网&#xff0c;葡萄城为开发者提供专业的开发工具、解决方案和服务&#xff0c;赋能开发者。 设计模式简介 设计模式是由经验丰富的程序员在日积月累中抽象出的用以解决通用问题的可复用解决方案&#xff0c;它提…

谷歌浏览器修改背景色

地址栏输入&#xff1a;chrome://flags/ 改为Enabled即可把背景色改为黑色&#xff0c;亲测edge浏览器也生效

点菜MT2234

【题目】 这个题读起来真拗口&#xff0c;啥叫“有可能不存在”&#xff1f; 如果结果为yes&#xff0c;那就是说“没有三个人都选中的菜”&#xff0c; 如果结果为no&#xff0c;那就是说“有三个人都选中的菜” 换句话说&#xff0c;那就是没有一道菜被3个人都点过。 abc …

2022年亚太杯APMCM数学建模大赛D题储能系统中传热翅片的结构优化求解全过程文档及程序

2022年亚太杯APMCM数学建模大赛 D题 储能系统中传热翅片的结构优化 原题再现 高效储能技术是解决可再生能源和余热资源波动性和间歇性的核心技术。相变蓄热以其较高的储能密度和近恒温蓄热放热而得到广泛应用。固-液相变材料具有相变前后相变潜热高、体积变化小等特点&#x…

专业管理菜单的增删改、查重

1&#xff0c;点击专业管理菜单------查询所有专业信息列表 ①点击菜单&#xff0c;切换专业组件 ②切换到列表组件后&#xff0c;向后端发送请求到Servlet ③调用DAO层&#xff0c;查询数据库&#xff08;sql&#xff09;&#xff0c;封装查询到的内容 ④从后端向前端做出…