Java基础知识精通块作用域与条件及switch语句
作者:猿界的小皮皮 发布时间:2022-12-21 17:50:07
前言
本文章主要讲解控制流程:块作用域、条件语句、switch语句,篇幅不大,通俗易记。
块作用域
在深入学习控制结构前,须先了解块的作用。
定义:由多条Java语句组成的语句,并用一对大括号括起来。
作用:块确定了变量的作用域,一个块可以嵌套在另一个块上。
实例:
package decom1;
public class cuowu {
public static void main(String[] args) { //第二个块嵌套在第一个块里面。
byte i = 12; //变量i只在第二个块区域内有作用包括嵌套里面的块。
{ //第三个块嵌套在第二个块里面同时也在第一个块里面。
int a = 3; //变量a只在所在的块起到作用。
System.out.println(a);
} //写在main(程序执行的入口)里面的代码块,就称为局部代码块。
//局部代码的作用:能够让变量更早的在内存中消失,节省内存空间。
System.out.println(i);
}
}
不能在嵌套的两个块中声明同名的变量。
实例:
package decom1;
public class cuowu {
public static void main(String[] args) {
byte i = 12;
{
int i = 3; //报错:Duplicate local variable i
}
System.out.println(i);
}
}
条件语句
条件语句有三种格式,下面我来解密一下哪三种格式。
格式一
if(条件表达式) { 语句体; }
Java中条件语句的表现形式:
if(condition) statement
这里的条件必须用小括号括起来。
条件表达式最终的结果只能是boolean类型,要么是true,要么是false。
流程:
1.如果程序执行到if语句的时候,会去看条件表达式的结果是true还是false。
2.如果是true,就会进入到if中,执行里面的语句体内容。
3.如果是false,就不会进入到if中,就不会执行到里面的语句体内容。
package com;
public class liu {
public static void main(String[] args) {
int i = 1;
int j = 2;
if(i > j) {
System.out.println(i);
}
System.out.println(j); //由于i>j不成立,所以不执行if里面的语句,直接跳过执行外面的语句。
}
}
格式二
if(条件表达式){ 语句体; }else{ 语句体; }
语句表现形式:
if(condition) statement1 else statement2
执行流程:
1.如果程序执行到if语句的时候,会去看条件表达式的结果是true还是false。
2.如果是true,就会进入到if中,执行里面的语句体内容。
3.如果是false,就不会进入到if中,会进入到else中,执行里面的语句体。
实例:
package com;
public class liu {
public static void main(String[] args) {
//获取两个数的较大值
int i = 1;
int j = 2;
int max = 0;
if(i > j) {
max = i; //把i赋值给max
} else {
max = j; //把j赋值给max
}
System.out.println(max); //因为i>j条件为假,所以执行else里面的语句,所以max得到的数值为2。
}
}
格式三(常用)
if(条件表达式){ 语句体; }else if{ 语句体; }…else{语句体;}
语句表达形式:
if…else if…
执行流程:
1.如果程序执行到if语句的时候,会去看条件表达式的结果是true还是false。
2.如果为true,就会执行if中的语句体内容,其他的语句体不会执行。
3.如果为false,就会继续向下走,看else if的条件表达式的结果是true还是false。
4.如果是true,就进入到elseif中,执行里面的语句体内容。
5.如果是false,就继续向下走…
6.如果if和所有的elseif中的条件表达式都为false,就会执行else中的语句体内容。
实例:
package com;
public class liu {
public static void main(String[] args)
int a = 0;
int i = 7;
if(i > 8) {
a = 1;
} else if(i > 7) {
a = 2;
} else if(i > 6) {
a = 3;
} else {
a = 4;
}
System.out.println(a);
}
}
switch语句
在处理多个选项时if条件语句显着有些笨拙,这个时候有新的玩法更何乐而不为呢?下面我来介绍switch语句。
结构放在实例讲,下面讲一下执行流程:
1.当程序执行到switch的时候,会进入到switch,会找第一个case进行匹配,如果匹配成功,就进入到case中执行。
2.里面的语句体内容和break。如果没有匹配成功,会继续向下走,找第二个case继续匹配… …。
3.如果所有的case都不匹配,最后会执行default中的语句体内容。
实例:
package com;
public class liu {
public static void main(String[] args) {
int i = 3;
switch(i) {
case 1:
System.out.println("1");
break;
case 2:
System.out.println("2");
break;
case 3:
System.out.println("3"); //i=3符合case 3所以就执行case里面的命令,其余语句则不管。
break;
default:
System.out.println("3");
break;
}
}
}
case标签:
类型为char、byte、short或int的常量表达式。
枚举常量。
从Java 7 开始,case标签可以是字符串字面量。
字符常量实例:
String input....
switch (input.tolowerCase())
{
case "yes":
...
break;
...
}
警告:如果case分支语句结尾没有break语句,那么就会接着执行下一个case分支语句。
如果你容易忘记这个茬,可以在前面加上这一个语句,这样一来如果case后面少了一个break,在编译的时候会提示错误。
javac -Xlint:fallthrough Test.java
switch结束标志:
1.break
2.遇到结尾}
结束语
本章主要讲解块作用域、条件语句、switch语句这三个控制结构,后续还会讲解其它的控制结构
来源:https://blog.csdn.net/qq_43355770/article/details/123975366


猜你喜欢
- 最近 IDEA 2020最后一个版本发布了 ,已经内置了Lombok插件,SpringBoot 2.1.x之后的版本也在Starter中内置
- 一、字符流的出现中文在GBK中占有两个字节,在utf-8中占有三个字节(即需要三个字节才能组成一个中文字),字节流读取中文时由于编码集的不同
- package com.test.html;import com.alibaba.fastjson.JSON;import org.apac
- 本文实例讲述了Android开发之搜索框SearchView用法。分享给大家供大家参考,具体如下:介绍:SearchView时搜索组件,可以
- 封装(Encapsulation)是面向对象编程的一个核心概念,它意味着将数据(属性)和方法(操作数据的函数)捆绑在一起,形成一个类(Cla
- 本文实例讲述了Android实现的简单蓝牙程序。分享给大家供大家参考,具体如下:我将在这篇文章中介绍了的Android蓝牙程序。这个程序就是
- 一、先上效果图借用某东App的效果,如下。折叠时的效果:展开时的效果:二、ChipGroup和ChipchipGroup和chip之前写过博
- 有时候会不可避免使用动态表或者列进行业务处理。下面学习几种动态表/列的使用方式:【1】使用预编译即,默认值。<select id=&q
- 本文实例讲述了Android互联网访问图片并在客户端显示的方法。分享给大家供大家参考,具体如下:1、布局界面<RelativeLayo
- springboot项目不配置数据源启动报错spring boot默认会加载org.springframework.boot.autocon
- 在上一篇笔记 《SpringMVC实现图片上传》记录了将图片上传到本地的实现,在很多项目中都会有一台专门的文件服务器来保存文件的,这边记录下
- 冒泡排序原理:从头(左边)开始比较每一对相邻的元素,如果第1个比第2个大,就交换它们的位置,执行完一轮后,最末尾(最右边)就是最大的元素。举
- 前2天有读者问到是否有带分页功能的表格控件,今天分页功能的表格控件详细解析。PaginatedDataTablePaginatedDataT
- renameTo方法public boolean renameTo(File dest),File类中的renameTo方法可以操作文件或目
- 背景很多时候我们使用WPF开发界面的时候经常会用到各种空间,很多时候我们需要去自定义控件的样式来替换默认的样式,今天通过两个方法来替换WPF
- 工作原理:Spring Cloud框架下的服务发现Eureka包含两个组件分别是: Eureka Server与Eureka ClientE
- java 对象输入输出流读写文件的操作实例java 支持对对象的读写操作,所操作的对象必须实现Serializable接口。 实例代码:pa
- 一、前台服务的简单介绍前台服务是那些被认为用户知道且在系统内存不足的时候不允许系统杀死的服务。前台服务必须给状态栏提供一个通知,它被放到正在
- 上移动端的测试课,老师和同学们用的都是eclipse, 只有我一个人用的是idea(用了两款软件之后觉得IDEA更好),真的太难了,配置
- 什么是有序性在开发中,我们通常按照从上到下的顺序编写程序指令,并且希望cpu和编译器按照我们预先编写的顺序去执。但往往cpu和编译器为了提高