语法】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,结果为true或者false
-
如果为true,直接执行代码1,然后结束
-
如果为false,那么看条件2是否为true
-
如果为true,直接执行代码2
-
否则判断条件3以此类推,如果所有的 else - if语句都返回的是false,那么执行else中的代码
注意:
- else if 可以有0到多个
- else语句最多只能有一个
- 一般超过三个
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;
}
注意:
-
表达式的值得类型必须是如下几种(int shor byte char String) String是jkd7之后支持的
-
case 后面跟常量(整型常量、字符常量…)
-
default子句是可选的,同时default块顺序可以变动,但要注意执行顺序,通常default块放在末尾,也可以省略
-
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语句
- 表达式的结果是boolean类型
- 常用于区间的判断
switch语句
- 表达式的类型不能是boolean类型,可以是 byte,short,int,char和String 枚举类型
- 常用于等值判断
选择语句的选取
- 能switch语句实现的就一定能够有if语句实现,但是反之就不一定了
- 如果是区间范围的采用if语句,如果是等值判断的使用switch语句
2.5 经典题目
-
若a和b均是整型变量并已正确赋值,正确的switch语句是( )。
A) switch(a+b); { … } B) switch( a+b*3.0 ) { … }
C) switch a { … } D) switch ( a%b ) { … } -
设int 型变量 a、b,float 型变量 x、y,char 型变量 ch 均已正确定义并赋值,正确的switch语句是( )。
A) switch (x + y) { … } B) switch ( ch + 1 ) { … }
C) switch ch { … } D) switch ( a + b ); { … } -
下列语句序列执行后,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
-
下列语句序列执行后,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
-
下列语句序列执行后,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
-
下面语句运行结果为:()
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
-
下面语句运行结果为:()
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-10
-
计算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~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语句的执行顺序
- 首先判断条件表达式结果是为true还是false
- 如果结果是true,执行循环体
- 如果结果是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("循环执行结束...");}
执行顺序
- 先执行循环语句一次
- 然后判断条件语句的返回结果是true还是false
- 如果是true再执行一次循环体,然后判断条件语句
- 如果是false,那么直接退出循环
4 break、continue、return关键字
4.1break关键字
在循环过程中我们要跳出循环的时候那么可以通过break
关键字来实现,改变程序控制流。
4.2continue关键字
作用:continue关键字用于跳过某个循环语句的一次执行,下一次循环还会继续
4.3return关键字
return关键字的作用是从当前方法中退出。返回到调用该方法的语句处,并且从该语句的下一条语句处开始执行。还没有讲方法,我们会在下节课中给大家详细介绍
【上一篇】:【1基础语法】4-优先级速查表
更多推荐
【1基础语法】5
发布评论