【1基础语法】5

编程入门 行业动态 更新时间:2024-10-08 03:38:35

【1基础<a href=https://www.elefans.com/category/jswz/34/1770552.html style=语法】5"/>

【1基础语法】5

5-Java中的语句结构

  • 1 顺序结构
  • 2 分支结构
    • 2.1 if语句
    • 2.2 多重if-else语句
    • 2.3 switch语句
    • 2.4 switch和if对比
    • 2.5 经典题目
  • 3 循环结构
    • 3.1 for循环
    • 3.2.while循环
    • 3.3 do while循环
  • 4 break、continue、return关键字
    • 4.1break关键字
    • 4.2continue关键字
    • 4.3return关键字

​ Java中我们执行main方法中的代码的时候是有先后顺序的,之前所写的代码都从上往下一行行执行了,没有遗落,除非报错,这种执行顺序我们叫顺序结构,最简单的结构。

1 顺序结构

​ 程序从上到下一行一行的执行代码,没有判断和中转,写在前面的代码先执行,写在后面的代码后执行

2 分支结构

​ 分支结构又称为选择结构,根据判断的结果判断某些条件,根据判断的结果来控制程序的流程,在这个结构中代码有可能执行一次,也有可能一次也不执行,在Java中分支结构的具体实现有if语句switch语句

if语句

switch语句

2.1 if语句

语法结构

if ( 关系表达式 ) {

​ // 语句体

}else{
//语法体
}

案例:

package com.bobo.ifdemo;import java.util.Scanner;public class IfDemo01 {/*** if语句*    需求:如果小明考试成绩大于90分,周末去海底世界游玩,*         这样的场景我们应该怎么来实现?* @param args*/public static void main(String[] args) {// 获取一个Scanner对象Scanner in = new Scanner(System.in);System.out.println("请输入小明的考试成绩: " );int score = in.nextInt();if (score > 90) {System.out.println("周末去海底世界游玩....");}System.out.println("-------------------");}}

面试题:

int i = 99;
if ( i > 100); {System.out.println("HelloWorld");
}

这段程序有没有问题?如果有问题什么原因?如果没有问题那么输出的结果是什么?

public static void main(String[] args) {int i = 99;if ( i > 100); // 这是一行代码// 这是一个代码块{System.out.println("HelloWorld");}
}

不会报错,输出的结果是 HelloWorld

2.2 多重if-else语句

有这样一个场景:

​ 老师在批改试卷,成绩在90分以上的为优秀,成绩在80-90分之间为良好,成绩在60-80分之间的为合格,60分以下的为差,这个应该要怎么来实现?

多重if-else语句语法:

if (条件1) {// 代码1
}else if(条件2){// 代码2
}else if(条件3){// 代码3
}...{}else{// 代码N
}

执行顺序:

  1. 判断条件1,结果为true或者false

  2. 如果为true,直接执行代码1,然后结束

  3. 如果为false,那么看条件2是否为true

  4. 如果为true,直接执行代码2

  5. 否则判断条件3以此类推,如果所有的 else - if语句都返回的是false,那么执行else中的代码

注意:

  1. else if 可以有0到多个
  2. else语句最多只能有一个
  3. 一般超过三个if-else推荐使用switch替换,方便效率

案例:


import java.util.Scanner;public class IfDemo06 {/*** 老师在批改试卷,成绩在90分以上的为优秀,* 成绩在80-90分之间为良好,* 成绩在60-80分之间的为合格,* 60分以下的为差,* @param args*/public static void main(String[] args) {Scanner in = new Scanner(System.in);System.out.println("请输入考试成绩:" );int score = in.nextInt();String info = "";if (score >= 90) {info = "成绩优秀";}else if(score >=80 ){info = "成绩良好,继续加油";}else if (score >= 60) {info = "成绩刚好及格,努力加油";}else {info = "成绩很差,明天叫家长过来....";}System.out.println(info);}}

2.3 switch语句

switch语句是根据表示的不同的值做出不同的执行的,针对特定的值来出来

语法格式:

switch(表达式){//表达式的值得类型必须是如下几种(int shor byte char String) String是**jkd7**之后支持的case 值1:代码1;break;case 值2:代码2:break;....N default:默认语句;break;
}

注意:

  1. 表达式的值得类型必须是如下几种(int shor byte char String) String是jkd7之后支持的

  2. case 后面跟常量(整型常量、字符常量…)

  3. default子句是可选的,同时default块顺序可以变动,但要注意执行顺序,通常default块放在末尾,也可以省略

  4. break语句的作用是在执行完一个case分支后是程序跳出switch语句块

import java.util.Scanner;public class SwitchDemo01 {/*** 模拟:拨打中国电信客户的案例* 按1:办理快带业务* 按2:办理手机业务* 按3:办理投诉业务* 按4:转人工服务* 没有上面的选项: 对不起您的输入有误* @param args*/public static void main(String[] args) {Scanner in = new Scanner(System.in);System.out.println("请输入您服务编号:");int num = in.nextInt();switch (num) {//表达式的值得类型必须是如下几种(int shor byte char String) String是**jkd7**之后支持的case 1://唯一,case 后面跟常量(整型常量、字符常量......)System.out.println("办理快带业务");break;case 2:System.out.println("办理手机业务");break;case 3:System.out.println("办理投诉业务");break;case 4:System.out.println("转人工服务");break;default:System.out.println("对不起您的输入有误");break;}}}

2.4 switch和if对比

if语句

  1. 表达式的结果是boolean类型
  2. 常用于区间的判断

switch语句

  1. 表达式的类型不能是boolean类型,可以是 byte,short,int,char和String 枚举类型
  2. 常用于等值判断

选择语句的选取

  1. 能switch语句实现的就一定能够有if语句实现,但是反之就不一定了
  2. 如果是区间范围的采用if语句,如果是等值判断的使用switch语句

2.5 经典题目

  1. 若a和b均是整型变量并已正确赋值,正确的switch语句是( )。
    A) switch(a+b); { … } B) switch( a+b*3.0 ) { … }
    C) switch a { … } D) switch ( a%b ) { … }

  2. 设int 型变量 a、b,float 型变量 x、y,char 型变量 ch 均已正确定义并赋值,正确的switch语句是( )。
    A) switch (x + y) { … } B) switch ( ch + 1 ) { … }
    C) switch ch { … } D) switch ( a + b ); { … }

  3. 下列语句序列执行后,k 的值是( )。

    int x = 6, y = 10, k = 5;
    switch (x % y) {case 0:k = x * y;case 6:k = x / y;case 12:k = x - y;default:k = x * y - x;
    }
    

    A) 60 B) 5 C) 0 D) 54

  4. 下列语句序列执行后,k 的值是( )。

    int i = 10, j = 18, k = 30;
    switch (j - i) {case 8:k++;case 9:k += 2;case 10:k += 3;default:k /= j;
    }
    

    A) 31 B) 32 C) 2 D) 33

  5. 下列语句序列执行后,r 的值是( )

    char ch = '8';
    int r = 10;
    switch (ch + 1) {case '7':r = r + 3;case '8':r = r + 5;case '9':r = r + 6;break;default:r = r + 8;
    }
    

    A) 13 B) 15 C) 16 D) 18

  6. 下面语句运行结果为:()

    switch (5) {default:System.out.println(5);break;case 0:System.out.println(0);break;case 1:System.out.println(1);break;case 2:System.out.println(2);break;
    }
    

    A) 0 B) 1 C) 2 D) 5

  7. 下面语句运行结果为:()

    switch (5) {default:System.out.print(5);case 0:System.out.print(0);case 1:System.out.print(1);break;case 2:System.out.print(2);break;
    }
    

    A) 1 B) 5 C) 0 D) 501

3 循环结构

​ 在满足循环条件的情况下,反复执行特定的代码,特定的代码有可能一次也不执行,也有可能执行了很多遍

for循环

while循环

do while 循环

3.1 for循环

for( 表达式1 ; 表达式2 ; 表达式3 ) 
{// 循环体语句  
}

语法格式说明:

for( 初始化语句 ; 循环条件语句 ; 控制条件语句 ) 
{// 循环体语句  
}
表达式说明
表达式1初始化语句,完成变量的初始化操作 初始化语句只会在第一次执行一次
表达式2循环条件语句,boolean类型,返回true进入循环体,返回false结束循环
表达式3控制条件语句,在循环体执行完成后执行的代码,负责修正变量,改变循环条件的

for循环的执行流程

课堂案例

  1. 控制台输出数据1-10

  2. 计算1到100的和,用for语句实现

/*** 计算1到100的和,用for语句实现* @param args*/
public static void main(String[] args) {// 在for循环之外创建一个变量 来接收我们的数据 相当于一个 容器int total = 0 ; // 保存计算结果for ( int i = 1 ; i <= 100 ; i ++) {total += i; // 将变量的结果累加到到total中}System.out.println(total);}
  1. 求1~100之间不能被3整除的数的和
package com.bobo.fordemo;public class ForDemo04 {/*** 求1~100之间不能被3整除的数的和*    1.先找到所有不能被3整除的数*    2.将找到的数累加即可* @param args*/public static void main(String[] args) {int total = 0;for( int i = 1 ; i <= 100 ; i ++){if (i % 3 != 0) {// 表示不能被3整除// System.out.println(i);total += i;}}System.out.println("1~100之间不能被3整除的数的和:" + total);}}

3.2.while循环

​ while是Java使用频率也比较高的一种循环方式。while语句的语法结构要比for循环简单些

语法格式

while (条件表达式) {// 循环语句
}
/*** while循环* @param args*/
public static void main(String[] args) {int i = 0;while( i < 10){System.out.println("i = " + i);i ++ ;}System.out.println("循环结束...");
}

while语句的执行顺序

  1. 首先判断条件表达式结果是为true还是false
  2. 如果结果是true,执行循环体
  3. 如果结果是false,退出循环体

课堂案例

1.用while语句去实现1到100的和

package com.bobo.whiledemo;public class WhileDemo02 {/*** 用while语句去实现1到100的和* @param args*/public static void main(String[] args) {int total = 0; // 记录总和int i = 1; // 声明的变量while( i <= 100){total += i;// 改变循环条件i ++; // 不能漏掉,不然会 死循环}System.out.println("1到100的和是:" + total);}}

2.用while语句实现1到100偶数的和

/*** 用while语句实现1到100偶数的和* @param args*/public static void main(String[] args) {int total = 0;int i = 0;while( i <= 100){if( i % 2 == 0){// 表示循环的数字是偶数total += i;}i++;}System.out.println("1到100之间的偶数和是:" + total);}public static void main(String[] args) {int sum = 0;int i = 2;while(i <= 100){sum += i;i += 2; // 每次自增2}System.out.println("sum = " + sum);}

3.3 do while循环

​ do while循环的特点:先执行一次循环体,然后在判断条件是否成立

语法结构

do{循环语句;
}while ( 条件表达式 ) ;
public static void main(String[] args) {int i = 0 ;do{// 循环在循环条件判断之前执行一次System.out.println("----" + i);}while(i < 0);System.out.println("循环执行结束...");}

执行顺序

  1. 先执行循环语句一次
  2. 然后判断条件语句的返回结果是true还是false
  3. 如果是true再执行一次循环体,然后判断条件语句
  4. 如果是false,那么直接退出循环

4 break、continue、return关键字

4.1break关键字

​ 在循环过程中我们要跳出循环的时候那么可以通过break关键字来实现,改变程序控制流。

4.2continue关键字

作用:continue关键字用于跳过某个循环语句的一次执行,下一次循环还会继续

4.3return关键字

return关键字的作用是从当前方法中退出。返回到调用该方法的语句处,并且从该语句的下一条语句处开始执行。还没有讲方法,我们会在下节课中给大家详细介绍

【上一篇】:【1基础语法】4-优先级速查表

更多推荐

【1基础语法】5

本文发布于:2024-03-10 00:13:19,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1726519.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:语法   基础

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!