赞
踩
1.复合语句
与C语言及其他语言相同,Java语言的复合语句是以整个块区为单位的语句,所以又称为块语句。复合语句由开括号“ { ” 开始,闭括号 “ } ”结束。
复合语句中的每个语句都是从上到下被执行,复合语句以整个块为单位,能够用在任何一个单独语句可以使用的地方,并且在复合语句中还可以嵌套复合语句。
例如,下面这段代码,在主方法中定义了复合语句块,复合语句块中还可以包含另一语句块。
在使用复合语句时要注意,复合语句为局部变量创建了一个作用域,该作用域为程序的一部分,在该作用域中某个变量被创建并能够被使用。如果在某个变量的作用域外使用该变量,则会发生错误。例如,在上述代码中,如果在复合语句外使用变量y、z、b将会出现错误,儿变量x可在整个方法体中使用。
2.条件语句
2.1 if条件语句
if条件语句是一个重要的编程语句,用于告诉程序在某个条件成立的情况下执行某段语句,而在另一种情况下执行另外的语句。
使用if条件语句,可选择是否要执行紧跟在条件之后的那个语句。关键字if之后是作为条件的“布尔表达式”如果该表达式返回的结果为true,则执行其后的语句:如果为false,则不执行if条件之后的语句。if条件语句可分为简单的if条件语句、if…else语句和if…else if多分支语句。
1.简单的if条件语句
语法如下
简单的if条件语句的执行过程如图所示。
例1,判断手机号码是否存在。
创建Takephone类,模拟拨打电话场景,如果电话号码不是84972266,则提示拨打的号码不存在。
代码:
运行结果:
流程图:
2.if…else语句
if…else语句是条件语句中最常用的一种形式,它会针对某种条件有选择地做出处理。通常表现为“如果满足某种条件,就进行某种处理,否则就进行另一种处理”。语法如下:
在项目中创建Login类,在主方法中定义变量,并通过if…else语句判断变量地值来决定输出结果。
代码:
流程图:
3.if…else if多分支语句
if…else if多分支语句用于针对某一事件的多种情况进行处理。通常表现为“如果满足某种条件,就进行某种处理,否则如果满足另一种条件则执行另一种处理。”语法如下:
- if(条件表达式1){
- 语句序列1
- }else if(条件表达式2){
- 语句序列2
- }
- …
- else if(条件表达式n){
- 语句序列n
- }
创建Restaurant类,声明整型变量count表示用餐人数,根据人数安排客人到4人桌、8人桌或包厢。
代码:
-
- public final class Restaurant {//创建类
- public static void main(String[] args) {//主方法
- System.out.println("欢迎光临,请问有多少人用餐?");//输入问题提示
- int count = 9;//用餐人数
- System.out.println("回答:"+count+"人");//输出回答
- if(count <=4) {//如果人数小于四人
- System.out.println("客人请到大厅4人桌用餐");//请到4人桌
- }else if(count>4 && count<=8) {//如果人数在4~8人
- System.out.println("客人请到大厅8人桌用餐");//请到8人桌
- }else if(count>8 && count<=16) {//如果人数在8~16人
- System.out.println("客人请到楼上包厢用餐");//请到楼上包厢
- }else {//当以上条件都不成立,执行该语句块
- System.out.println("抱歉,我们店暂时没有这么大的包厢");//输出信息
-
-
- }
- }
- }
运行结果:
流程图
在编程中,一个常见的问题就是检测变量是否符合某个条件,如果不符合,再用另一个值来检测。
例如,使用if语句对考试成绩进行评估,关键代码如下:
- if(grade =='A'){
- Systeem.out.println("真棒");
- }
- if(gread =='B'){
- System.out.println("做得不错");
- }
在Java中,可以用switch语句将动作组织起来,以一个简单明了得方式来实现“多选一”得选择。语法如下:
- switch(表达式){
- case 常量值1:
- 语句块1
- [break;]
- …
- case 常量值n;
- 语句块n
- [break;]
- default:
- 语句块n+1;
- [break;]
- }
switch语句中表达式的值必须是整型、字符型、字符串类型或枚举类型,常量值1~n的数据类型必须与表达式的值的类型相同。
创建Grade类,使用Scanner类在控制台输入分数,然后switch多分支语句判断输入的分数属于哪类成绩。10分和9分属于优,8分属于良,7分和6分属于中,5分、4分、3分、2分、1分以及0分均属于差。
代码:
-
- import java.util.Scanner;//引入Scanner类
- public class Grade {//创建类
- public static void main(String[] args) {//主方法
- Scanner sc = new Scanner(System.in);//创建扫描器,接收控制台输入内容
- System.out.println("请输入成绩");//输出字符串
- int grade = sc.nextInt();//获取控制台输入的数字
- switch(grade) {//使用switch判断数字
- case 10://如果等于10,则继续执行下一行代码
- case 9://如果等于9
- System.out.println("成绩为优");//输出“成绩优先”
- break;//结束判断
- case 8://如果等于8
- System.out.println("成绩为良");//输出“成绩为良”
- break;//结束判断
- case 7://如果等于7,则继续执行下一行代码
- case 6://如果等于6
- System.out.println("成绩为中");//输出“成绩为中”
- break;//结束判断
- case 5://如果等于5,则继续执行下一行代码
- case 4://如果等于4,则继续执行下一行代码
- case 3://如果等于3,则继续执行下一行代码
- case 2://如果等于2,则继续执行下一行代码
- case 1://如果等于1,则继续执行下一行代码
- case 0://如果等于0
- System.out.println("成绩为差");//输出“成绩为差”
- break;//结束判断
- default://如果不符合以上任何一个结果
- System.out.println("成绩无效");//输出“成绩无效”
- }
- sc.close();//关闭扫描器
- }
-
- }
运行结果
流程图:
while 语句也称条件判断语句,它的循环方式为利用一个条件来控制是否要继续反复执行这个语句。语法如下:
-
- while(条件表达式){
- 语句序列
- }
创建GetSum类,在主方法中通过while循环计算1~1000相加的和并输出。
代码:
- public class GetSum {//创建类
- public static void main(String[] args) {//主方法
- int x = 1;//从1开始
- int sum = 0;//相加的结果
- while(x<=1000) {//循环1000次
- sum = sum+x;//sum与之前计算的和相加
- x++;//每次循环后x的值+1
- }
- System.out.println("sum="+sum);//输出最终的相加结果
- }
- }
运行结果
流程图:
3.2 do…while循环语句
do…while循环语句与while循环语句类似,它们之间的区别是while语句为先判断是否成立再执行循环体,而do…while循环语句则先执行一次循环后,再判断条件是否成立。也就是说,do…while循环语句“ { } ”中的程序至少要被执行一次。语法如下:
-
- do{
- 语句序列
- }while(条件表达式);
例6,使用do…while语句进行用户登录验证
创建LoginService类,首先提示用户输入6位密码,然后使用Scanner扫描器获取用户输入的密码,最后进入do…while循环进行判断,如果用户输入的密码不是“931567”,则让用户反复输入,直到输入正确密码为止。
代码:
- import java.util.Scanner;//引入scanner类
- public final class LoginService {//创建类
- public static void main(String[] args) {//主方法
- Scanner sc =new Scanner(System.in);//创建扫描器,获取控制台输入的值
- int password;//保存用户输入的密码
- do {
- System.out.println("请输入6位数字密码:");//输入提示
- password = sc.nextInt();//将用户在控制台输入的密码记录下来
- }while(931567 != password);//如果用户输入的密码不是931567则进行执行循环
- System.out.println("登陆成功");//提示循环已结束
- sc.close();//关闭扫描器
- }
- }
运行结果:
流程图:
for循环是Java程序设计中最有用的循环之一。一个for循环可以用来重复执行某条语句,直到某个条件得到满足。for循环有两种语句,一种是传统的for语句,一种是foreach语句。
1、for语句
for的传统语句有三个表达式,语法如下:
- for(表达式1;表达式2;表达式3){
- 语句序列
- }
创建Circulate类,编写程序,使用for循环语句计算2~100所有偶数的和并输出。
代码:
- public class Circulate {//创建类
- public static void main(String[] args) {//主方法
- int sum = 0;//偶数相加后的结果
- for(int i =2;i<=100;i+=2) {
- sum = sum + i;//指定循环条件及循环体
- }
- System.out.println("2到100之间所有偶数之和为:"+sum);//将相加后的结果输出
- }
- }
运行结果:
流程图:
2.foreach语句
foreach语句是for语句的特殊简化版本,不能完全取代for语句,但任何foreach语句都可以改写为for语句版本。foreach语句并不是一个关键字,习惯上将这种特殊的for语句格式称为foreach语句。语法如下:
- for(元素类型x:遍历对象obj){
- 引用了x的Java语句;
- }
创建类Repetition,在主方法中定义一堆数组,并用foreach语句遍历该数组。
代码:
- public class Repetition {//创建类
- public static void main(String[] args) {//主方法
- int arr[] = {5,13,96};//一维整型数组
- System.out.println("一维数组中的元素分别为:");
- //x的类型与arr元素的类型相同。for循环依此取出arr中的值并赋值给x
- for(int x:arr) {
- System.out.println(x);//输出遍历出的元素值
- }
- }
- }
运行结果:
流程图:
4.循环控制
4.1 break语句
使用break语句可以跳出switch结构。在循环结构中,同样也可以用break语句跳出当前循环体,从而中断当前循环。
例9,输出1~20出现的第一个偶数
创建BreakTest类,循环输出1~20的偶数值,在遇到第一个偶数时,使用break语句结束循环。
代码:
- public class BreakTest {//创建类
- public static void main(String[] args) {//主方法
- for(int i=1;i<20;i++) {
- if(i %2 ==0) {//如果i是偶数
- System.out.println(i);//输出i的值
- break;//结束循环
- }
- }
- System.out.println("--end--");//结束时输入一行文字
- }
- }
运行结果:
流程图:
如果想让break跳出外层循环,Java提供了“标签”的功能,语法如下:
-
- 标签名:循环体{
- break标签名;
- }
标签名:任意标识符。
循环体:任意循环语句。
break标签名:break跳出指定的循环体,此循环体的标签名必须与break的标签名一致。带有标签的break可以指定跳出循环,这个循环可以是内层循环,也可以是外层循环。
创建BreakInsideNested类,在该类中写两层for循环,第一层for语句循环3次,第二层for语句循环5此。当第二层for循环至第四次时,强行使用break中断循环。输出程序执行时外层循环和内层循环各循环了多少次。
代码:
- public class BreakInsideNested {//创建类
- public static void main(String[] args) {//主方法
- for(int i =1;i<=3;i++) {//外层循环
- for(int j=1;j<=5;j++) {//内层循环
- if(j==4) {//内层循环至第四次就结束
- break;
- }
- System.out.println("i="+i+"j="+j);
- }
- }
- }
-
- }
运行结果:
流程图
4.2 continue语句
continue语句是针对break语句的补充。continue不是立即跳出循环体,而是跳过本次循环,回到循环的条件测试部分,重新开始执行循环。在for循环语句中遇到continue后,首先执行循环的增量部分,然后进行条件测试。在while和do…while循环中,continue语句使控制直接回到条件测试部分。
例11,输出1~20的奇数
创建ContinueTeat类,编写一个for循环从1循环至20,如果当前循环的次数为偶数,则使用continue语句跳过循环。
代码:
- public final class ContinueTeat {//创建类
- public static void main(String[] args) {//主方法
- for(int i=1;i<=20;i++) {
- if(i%2==0) {//如果i是偶数
- continue;//跳出下一循环
- }
- System.out.println(i);//输出i的值
- }
- }
-
- }
运行结果:
流程图
课堂作业
流程:
- 1
- for{(2;3;4)
- 5
- while(条件){
- 6
- }
- 7
- }
- 8
流程图:
流程:
- 1
- do{
- 2
- for(3;4;5){
- 6
- }
- 7
- }while (条件)
- 8
流程图
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。