Java 入门基础篇11 - java基础语法

news2024/10/21 17:02:02

一 流程控制

1.1 流程控制语句介绍

一个java程序有很多条语句组成,流程控制语句是用来控制程序中的各语句执行的顺序,通过流程语句控制让程序执行顺序达到我们想要实现的功能。
其流程控制方式采用结构化程序设计中规定的三种基本流程结构:
   顺序结构
   选择结构
   循环结构

1.2 顺序结构

顺序结构介绍

是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行的。
总结:写在前面的先执行,写在后面的后执行

案例

public static void main(String[] args){
      System.out.println("买菜");
      System.out.println("摘菜");
      System.out.println("洗菜");
      System.out.println("切菜");
      System.out.println("配菜");
      System.out.println("炒菜");
      System.out.println("吃饭");
      System.out.println("吃完了");
      System.out.println("锅和碗一起扔了,就可以不用洗了O(∩_∩)O");
}

二 选择结构

2.1 选择结构介绍

选择也被称为分支结构,选择结构有特定的语法规则,代码要执行具体的逻辑运算进行判断,逻辑运算的结果有两个,所以产生选择,按照不同的选择执行不同的代码。

选择结构的分类

if语句
switch语句

2.2 选择语句if

2.2.1 格式1

if(逻辑表达式或boolean类型的值){
     语句体;
}

执行流程

先计算比较表达式的值,看其返回值是true还是false。
   true:行语句体
   false:不执行语句体

流程图

案例

判断两个变量是否等

代码:

public static void main(String[] args){
    // 定义两个变量
    int a = 1; 
    int b = 2; 
    //判断两个变量是否相等 
    if (a == b){ 
        System.out.println("a等于b");
    }
    System.out.println("程序运行完毕!");
}

注意:

1.比较表达式无论简单还是复杂,结果必须是boolean类型
2.if语句控制的语句体如果是一条语句,大括号可以省略;如果是多条语句,就不能省略。建议永远不要省略。
3.一般来说:有左大括号就没有分号,有分号就没有左大括号

2.2.2 if格式2

   if(比较表达式) {
        语句体1;
    }else {
        语句体2;
    }

执行流程

首先计算比较表达式的值,看其返回值是true还是false。
   true:执行语句体1
   false:执行语句体2

流程图

案例

判断一个数是奇数还是偶数

代码

public static void main(String[] args){ 
    // 判断给定的数据是奇数还是偶数 
    // 定义变量 
    int a = 1; 
    if(a % 2 == 0) { 
        System.out.println("a变量是一个偶数"); 
    } else{ 
        System.out.println("a变量是一个奇数"); 
    }
     System.out.println("程序运行完毕!");
}

用三元表达式替换

boolean flag = a % 2 == 0 ? true : false

2.2.3 if格式3

    if(比较表达式1) {
        语句体1;
    }else if(比较表达式2) {
        语句体2;
    }else if(比较表达式3) {
        语句体3;
    }
    ...
    else {
        语句体n+1;
    }

执行流程

首先计算比较表达式1看其返回值是true还是false,
如果是true,就执行语句体1,if语句结束。
如果是false,接着计算比较表达式2看其返回值是true还是false,
如果是true,就执行语句体2,if语句结束。
如果是false,接着计算比较表达式3看其返回值是true还是false,
...
如果都是false,就执行语句体n+1。
注意事项: 当只要有一个条件满足时,if语句结束。else是可以省略,但是不建议省略。
​
首先判断关系表达式1看其结果是true还是false
  true:执行语句体1,if语句结束
  false:继续判断关系表达式2看其结果是true还是false 
     true:执行语句体2,if语句结束 
     false:就继续判断关系表达式…看其结果是true还是false 
       false:执行语句体n+1

流程图

案例1

判断学生成绩等级
    90~100 优秀
    80~89  良
    70~79  中
    60~69  及格
    0~59   差

代码

      int score = 80;
      if( score >= 90 && score <= 100 ){
            System.out.println("优秀") ;
        }else if(score >= 80 && score <= 89 ){
            System.out.println("良") ;
        }else if(score >= 70 && score <= 79 ){
            System.out.println("中") ;
        }else if(score >= 60 && score <= 69 ){
            System.out.println("及格") ;
        }else {
            System.out.println("你真的好差,简直差得一匹啊!o(╥﹏╥)o") ;
        }

案例2:

求3个数800,200,1000中的最大数?

代码:

        // 获取三个数据中的最大值
        // 定义3个int类型的变量
        int a = 800 ;
        int b = 200 ;
        int c = 1000 ;
        // 使用if语句实现
        // 定义一个int类型的变量
        int max ;
        // 使用if语句
        if( a > b ){
            if( a > c ){
                max = a ;
            }else {
                max = c ;
            }
        }else {
            if( b > c ){
                max = b ;
            }else {
                max = c ;
            }
        }
        // 输出
        System.out.println("max : " + max) ;
    }

2.3 选择语句switch

2.3.1 switch语句介绍

一个 switch 语句允许测试一个变量等于多个值时的情况。每个值称为一个case,且被测试的变量会对每个switch case 进行检查。

switch语句格式

switch(表达式) {
  case 值1 : 
     语句体1 ;
     break ;
  case 值2 : 
     语句体2 ;
     break ;
   case 值3 : 
      语句体3 ;
      break ;
       ...
   default: 
       语句体 n + 1 ;
       break ;
   }
1.switch表示这是switch语句
        表达式的取值:byte,short,int,char
        JDK5以后可以是枚举(什么是枚举,以后再讲)
        JDK7以后可以是String 
2.case后面跟的是要和表达式进行比较的值
3.语句体部分可以是一条或多条语句
4.break表示中断,结束的意思,可以结束switch语句
5.default语句表示所有情况都不匹配的时候,就执行该处的内容,和if语句的else相似

执行流程

先计算表达式的值,依次和case后面的值进行比较,如果匹配成功就是case中的语句体,遇到break结束。如果和所有的case后面的值都不能匹配成功,就执行default中的语句体后结束程序。

流程图

案例

用1-7代表周一到周日,指定一个数字判断对应的星期周期。

代码

    //定义一个数字
    int num = 8 ;
    switch(num) {
        case 1 :
            System.out.println("星期一") ;
            break ;
        case 2 :
            System.out.println("星期二") ;
            break ;
        case 3 :
            System.out.println("星期三") ;
            break ;
        case 4 :
            System.out.println("星期四") ;
            break ;
        case 5 :
            System.out.println("星期五") ;
            break ;
        case 6 :
            System.out.println("星期六") ;
            break ;
        case 7 :
            System.out.println("星期日") ;
            break ;
        default:
            System.out.println("没有您输入的星期周期!o(╥﹏╥)o") ;
            break ;
    }

2.3.2 switch注意事项

1.case后面只能是常量,不能是变量,而且,多个case后面的值不能出现相同的
2.default可以省略吗?
        可以省略,但是不建议,因为它的作用是对不正确的情况给出提示。
3.break可以省略吗?
        可以省略,但是结果可能不是我们想要的。
        会出现一个现象:case穿透。
        最终我们建议不要省略
4.default一定要在最后吗?
        不是,可以在任意位置。但是建议在最后。
5.switch语句的结束条件
        遇到break就结束
        执行到末尾就结束

case穿透演示

       int month = 1;
       switch(month) {
            case 12 :
            case 1 :
            case 2 : 
                System.out.println("冬季") ;
                break ;
            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 ;
            default :
                System.out.println("没有对应的季节!o(╥﹏╥)o") ;
                break ;
        }
​

2.3.3 switch面试题

byte可以作为switch的表达式吗?
long可以作为switch的表达式吗?
String可以作为switch的表达式吗?

2.3.4 if语句与switch语句区别

在做判断的时候,我们有两种选择,if语句和switch语句,那么,我们到底该如何选择使用那种语句呢?

if语句使用场景:
    针对结果是boolean类型的判断
    针对一个范围的判断
    针对几个常量值的判断
switch语句使用场景: 
    针对几个常量值的判断

三 循环语句

3.1 循环语句介绍及分类

循环语句介绍

循环语句的作用是可以让一段代码(语句)重复执行,重复执行的次数可以根据需求进行控制。

循环语句分类

for循环
while循环
do..while循环

3.2 for循环

for循环格式

for(初始化表达式语句;判断条件语句;控制条件语句) {
        循环体语句;
    }

执行流程

先执行初始化表达式语句,只会执行一次
执行判断条件语句,看其返回值是true还是false
    如果是true,就继续执行
    如果是false,就结束循环
执行循环体语句;
执行控制条件语句
继续判断条件语句

流程图

循环输出10次HelloWorld

for(int x = 1 ; x <= 10 ; x++){
     System.out.println("HelloWorld") ;
}
System.out.println("程序运行结束了......");

计算1-100之间偶数之和

// 需求:求出1-100之间偶数和
// 定义一个累加变量
int sum = 0 ;
// 使用for循环
for(int x = 1 ; x <= 100 ; x++){
   // 判断
   if( x%2 == 0 ){
      sum += x ;
    }
  }
  // 输出
 System.out.println("偶数和为: " + sum) ;

3.3 循环语句while

while语句格式

初始化条件语句;
while(判断条件语句) {
    循环体语句;
    控制条件语句;
}

while执行流程

a:执行初始化条件语句;
b:执行判断条件语句,看其返回值是true还是false
    如果是true,就继续执行
    如果是false,就结束循环
c:执行循环体语句;
d:执行控制条件语句
e:回到b继续。

流程图

循环输出10次helloworld

int x = 1 ;
// 使用while循环
while( x <= 10 ){
    System.out.println("HelloWorld!") ;
    x++ ;
  }

计算1-100中偶数之和

// 定义一个累加变量
int sum = 0 ;
// 套用while循环的格式
int x = 1 ;
while(x <= 100){
    // 判断
   if( x%2 == 0 ){
      sum += x ;
    }
     x++ ;
}
// 输出
System.out.println("sum: " + sum);

3.4 循环语句do...while

do...while格式

初始化条件语句;
do {
   循环体语句;
   控制条件语句;
 }while(判断条件语句);

执行流程

执行初始化条件语句;
执行循环体语句;
执行控制条件语句;
执行判断条件语句,看其返回值是true还是false
    true,就继续执行
    false,就结束循环

流程图

循环输出10次Helloworld

int y = 1 ;
  do {
      System.out.println("HelloWorld") ;
      y++ ;
   }while( y <= 3) ;

计算1-100中偶数之和

int sum = 0;
int i = 1;
    do{
        if(x%2 == 0){
            sum += x;
        }
        x++;
    }while(x<10);
System.out.println("sum "+sum);

3.5 循环语句区别

1.do...while循环至少执行一次循环体。
     而for,while循环必须先判断条件是否成立,然后决定是否执行循环体语句。
2.如果你想在循环结束后,继续使用控制条件的那个变量,用while循环,否则用for循环。不知道改用谁优先用for循环。
     因为for循环中变量及早的从内存中消失,可以提高内存的使用效率。
3.建议优先考虑for循环,然后是while循环 ,最后是do...while循环

3.6 多重循环语句

3.6.1 多重循环介绍

循环里面还有循环,如for循环中且套for循环或且套while循环等。
总循环次数 = 外循环次数 * 内循环次数
格式:
   for(初始化表达式;条件判断表达式;控制条件表达式){
        for(初始化表达式;条件判断表达式;控制条件表达式){
        }
   }
​

3.6.1 多重循环案例

使用嵌套循环,打印5*8的矩形

//外循环5次,
//内循环8次 
for(int i = 0; i < 5; i++){ 
    for(int j = 0; j < 8; j++){ 
       //不换行打印星号,没有ln
        System.out.print("*"); 
    }
    //内循环打印8个星号后,需要一次换行 
    System.out.println(); 
}

效果

********
********
********
********
********

3.7 死循环语句

死循环介绍

判断条件语句的结果永远都为true,那么循环体会一直无休止的执行下去。
死循环可能导致系统资源占用过高及系统全盘崩溃。

while语句死循环

while(true){...}

for语句死循环

for(;;){...}

3.8 控制跳转语句

3.8.1 控制语句介绍

什么是控制语句

控制语句的目的是为了控制程序跳转、中断等操作,goto是java中保留字目前还不能用,但java中提供了break、continue、return来实现控制语句的跳转和中断。

控制跳转语句的分类

break:
   中断,结束单层循环
continue 
   继续,结束本次循环继续下一次循环
return 
   返回,结束方法执行

3.8.2 案例演示

break演示

for(int x = 1 ; x <= 10 ; x++){
     if(x == 3){
         break ;
      }
      System.out.println("HelloWorld") ;
  }

continue演示

for(int x = 1; x <= 10; x++) {
    if( x % 3 == 0) {
        continue;
     }
    System.out.println("HelloWorld");
}

return演示

for(int x = 1; x <= 10; x++) {
    if( x % 3 == 0) {
        return;
     }
    System.out.println("HelloWorld");
}

1.break和continue关键字不影响for循环后面的语句执行 2.return是结束当前方法,for循环结束同时整个方法也结束了

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

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

相关文章

金融信用评分卡建模项目:AI辅助

最近我一直忙着开发一个信用评分卡建模工具&#xff0c;所以没有时间更新示例或动态。今天&#xff0c;我很高兴地跟大家分享&#xff0c;这个工具的基本框架已经完成了&#xff0c;并且探索性的将大语言模型&#xff08;AI&#xff09;整合了进去。目前ai在工具中扮演智能助手…

探索人工智能:深度解析未来科技的核心驱动力

目录 &#x1f354; 人工智能的应用方向 &#x1f354; 人工智能的发展历史 &#x1f354; 人工智能、机器学习、深度学习关系 &#x1f354; 为什么学习机器学习&#xff1f; &#x1f354; 小节 学习目标 &#x1f340; 了解人工智能的应用方向 &#x1f340; 了解人工智…

CICD持续集成交付与持续交付

一 CICD是什么 CI/CD 是指持续集成&#xff08;Continuous Integration&#xff09;和持续部署&#xff08;Continuous Deployment&#xff09;或持续交付&#xff08;Continuous Delivery&#xff09; 1.1 持续集成&#xff08;Continuous Integration&#xff09; 持续集成…

javascript object

用const去define一个constant 用let (如果要reassign的话) 一个变量。

每天3分钟,彻底弄懂神经网络的优化器(十一)AdamW

1. AdamW算法的提出 AdamW算法是由Ilya Loshchilov和Frank Hutter提出的。这一算法的详细描述和原理可以在论文《Decoupled Weight Decay Regularization》1中找到&#xff0c;该论文发表于2017年。在论文中&#xff0c;作者指出了传统Adam算法在权重衰减&#xff08;weight d…

初等数学几百年重大错误:将根本不是无穷集的真子集误为其真子集

黄小宁 【摘要】长为1的直线段形橡皮筋A拉长为长为2的橡皮筋B&#xff08;可二等分&#xff09;&#xff0c;去掉拉力使B缩短成原来的A&#xff0c;A不是B的一半。同样可证直线段L均匀压缩变短为直线段D&#xff5e;L不能成为L的一部分。数学一直误以为D是L的一部分使康脱推出…

C/C++栈和队列

一.队列 结构定义 FIFO:队列是一个先进先出的数据结构; 只允许从队首出元素,从队尾入元素; head和tail所包含的区间是左闭开的; 入队操作 没用真实将一号元素删除,而是将head指针向后移动一位,进行逻辑上的删除; 出队操作 将新元素储存在队尾指针所在的位置,并将队尾指针…

二校区图书馆一楼《中华再造善本》很多

上两幅为同一本书的&#xff0c;有“太平之时嫌官小&#xff0c;离乱之时怕出征”这句 上两幅为同一本书的&#xff0c;为《水浒传》节选 二校区图书馆一楼满眼都是线装的古书《中华再造善本》 图书馆五楼 图书馆四楼&#xff0c;一个人躺在长沙发上 图书馆一楼的透明电梯

Intel Xeon(至强) 服务器 CPU

Purley平台&#xff1a;Sky Lake&#xff08;第一代&#xff09;、Cascade Lake&#xff08;第二代&#xff09; Whitley平台&#xff1a;Cooper Lake、Ice Lake&#xff08;第三代&#xff09; Eagle Stream平台&#xff1a;Sapphire Rapids、Emerald Rapids&#xff08;第四…

Vite打包碎片化,如何化解?

背景 我们在使用Vite进行打包时&#xff0c;经常会遇到这个问题&#xff1a;随着业务的展开&#xff0c;版本迭代&#xff0c;页面越来越多&#xff0c;第三方依赖也越来越多&#xff0c;打出来的包也越来越大。如果把页面都进行动态导入&#xff0c;那么凡是几个页面共用的文…

RHCSA的学习(5)

一、文本内容处理命令 1、数据流和重定向 1、数据流 标准输入&#xff08;standard input&#xff0c;简称stdin&#xff09;&#xff1a;默认情况下&#xff0c;标准输入指从键盘获取的输入标准输出&#xff08;standard output&#xff0c;简称stdout&#xff09;&#xff…

2020前端面试 - JavaScript2.0篇

前言&#xff1a; 个人觉得面试其实是一个自我学习的过程&#xff0c;如果说短时间内找不到工作&#xff0c;那一定是你面的还不够多&#xff0c;不要气馁&#xff0c;不要放弃&#xff0c;在心底告诉自己&#xff0c;下一次面试&#xff0c;再下一次面试&#xff0c;一定能够拿…

为什么inet_ntoa会返回错误的IP地址?

目录 1、调用inet_addr和inet_ntoa实现整型IP与点式字符串之间的转换 1.1、调用inet_addr将点式字符串IP转换成整型IP 1.2、调用inet_ntoa将整型IP转换成点式字符串IP 2、调用inet_ntoa返回错误点式字符串IP的原因分析 3、解决多线程调用inet_ntoa返回错误点式字符串IP的办…

在 Docker容器中安装 ROS-Melodic 并使用 rviz 进行图形化显示

文章目录 写在前面1. 背景描述2. 安装步骤2.1 允许本地机器上的用户或进程连接到 X server2.2 拉取 docker 镜像2.3 使用镜像osrf/ros:melodic-desktop-full创建并运行容器2.4 运行 roscore2.5 运行 rviz 参考链接 写在前面 自己的测试环境&#xff1a; Ubuntu20.04&#xff0…

基于SSM的微信小程序博客管理系统(博客1)

&#x1f449;文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1、项目介绍 基于SSM的微信小程序博客管理系统实现与设计&#xff0c;实现了管理员与用户&#xff0c;管理员实现了用户管理、博文信息管理、博文类型管理、我的博文管理、个人名片分享管理、签到管理…

SAP S/4 HANA 销售返利

目录 1 简介 2 后台配置 3 主数据 4 业务操作 4.1 场景 1 - 返利应计 4.2 场景 2 - 最终结算 1 简介 在过去 SAP ECC 把“返利”功能集成在了 SD 模块当中&#xff0c;而 SAP S/4 HANA 把“返利”集成在了结算管理功能模块当中。究其原因&#xff0c;主要是 ECC “返利”…

深度解析LMS(Least Mean Squares)算法

目录 一、引言二、LMS算法简介三、LMS算法的工作原理四、LMS算法的特点五、LMS算法的应用场景六、LMS算法的局限性七、总结八、进一步探讨 一、引言 自适应滤波器是一种动态调整其参数以适应变化环境的信号处理工具&#xff0c;广泛应用于噪声消除、信道均衡和系统识别等领域。…

算法工程师重生之第二十五天(加油站 分发糖果 柠檬水找零 根据身高重建队列 )

参考文献 代码随想录 一、加油站 在一条环路上有 n 个加油站&#xff0c;其中第 i 个加油站有汽油 gas[i] 升。 你有一辆油箱容量无限的的汽车&#xff0c;从第 i 个加油站开往第 i1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发&#xff0c;开始时油箱为空。…

Mysql的Innodb的RR隔离级别到底有没有解决幻读问题?

InnoDB中的repeatable read这种隔离级别通过间隙锁MVCC解决了大部分的幻读问题&#xff0c;但是并不是所有的幻读都能解读&#xff0c;想要彻底解决幻读&#xff0c;需要使用Serializable的隔离级别。 MVCC解决幻读 在RC中&#xff0c;每次读取都会重新生成一个快照&#xff…

EDM平台排行榜与工具推荐

本文总结了EDM平台排行榜&#xff0c;包括ZohoCampaigns、Mailchimp等。各平台在集成性、自动化、模板库等方面各具优势&#xff0c;适合不同规模和需求的企业。选择适合的EDM平台对营销活动成功至关重要。 1. Zoho Campaigns 简介 Zoho Campaigns是Zoho的edm平台&#xff0c…