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

标签:Java,块作用域,条件语句,switch语句
0
投稿

猜你喜欢

  • GoLang与Java各自生成grpc代码流程介绍

    2021-06-20 09:28:50
  • Android仿淘宝物流追踪的实例代码

    2021-08-19 22:57:23
  • 说说@ModelAttribute在父类和子类中的执行顺序

    2022-07-31 17:59:55
  • 基于C#实现的木马程序实例详解

    2023-02-25 20:05:03
  • java图片验证码生成教程详解

    2021-11-04 13:22:14
  • C#中读写INI配置文件的方法

    2021-10-29 19:57:37
  • Android 实现自定义圆形listview功能的实例代码

    2022-06-20 06:58:29
  • Java方法调用解析静态分派动态分派执行过程

    2023-05-03 04:32:40
  • java读取文件字符集示例方法

    2023-11-09 12:35:39
  • c#关于JWT跨域身份验证的实现代码

    2023-09-12 18:26:02
  • 基于Java中的数值和集合详解

    2023-11-25 08:12:13
  • 浅谈Android性能优化之内存优化

    2023-08-19 04:36:43
  • Spring Boot应用监控的实战教程

    2022-03-02 18:17:09
  • Android 文件数据存储实例详解

    2023-07-28 17:08:03
  • 详解SpringBoot中Session超时原理说明

    2022-01-24 06:40:49
  • Java内存缓存工具Guava LoadingCache使用解析

    2023-05-25 08:36:36
  • C# WinForm-Timer控件的使用

    2023-11-20 06:54:00
  • Java实现map转换成json的方法详解

    2022-09-09 12:26:03
  • 利用C#实现在Word中更改字体颜色

    2021-12-25 12:14:09
  • Springboot 异步任务和定时任务的异步处理

    2022-08-20 07:21:12
  • asp之家 软件编程 m.aspxhome.com