当前位置:   article > 正文

java流程控制_public static void main(string[] args){int count =

public static void main(string[] args){int count =0;count =count+1;syste

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语句是条件语句中最常用的一种形式,它会针对某种条件有选择地做出处理。通常表现为“如果满足某种条件,就进行某种处理,否则就进行另一种处理”。语法如下:

例2,使用if…else语句校验密码

在项目中创建Login类,在主方法中定义变量,并通过if…else语句判断变量地值来决定输出结果。

代码:

流程图:

3.if…else if多分支语句

if…else if多分支语句用于针对某一事件的多种情况进行处理。通常表现为“如果满足某种条件,就进行某种处理,否则如果满足另一种条件则执行另一种处理。”语法如下:

  1. if(条件表达式1){
  2. 语句序列1
  3. }else if(条件表达式2){
  4. 语句序列2
  5. }
  6. else if(条件表达式n){
  7. 语句序列n
  8. }

例3,使用if…else if语句实现饭店座位分配

创建Restaurant类,声明整型变量count表示用餐人数,根据人数安排客人到4人桌、8人桌或包厢。

代码:

  1. public final class Restaurant {//创建类
  2. public static void main(String[] args) {//主方法
  3. System.out.println("欢迎光临,请问有多少人用餐?");//输入问题提示
  4. int count = 9;//用餐人数
  5. System.out.println("回答:"+count+"人");//输出回答
  6. if(count <=4) {//如果人数小于四人
  7. System.out.println("客人请到大厅4人桌用餐");//请到4人桌
  8. }else if(count>4 && count<=8) {//如果人数在4~8人
  9. System.out.println("客人请到大厅8人桌用餐");//请到8人桌
  10. }else if(count>8 && count<=16) {//如果人数在8~16人
  11. System.out.println("客人请到楼上包厢用餐");//请到楼上包厢
  12. }else {//当以上条件都不成立,执行该语句块
  13. System.out.println("抱歉,我们店暂时没有这么大的包厢");//输出信息
  14. }
  15. }
  16. }

运行结果:

流程图

2.2 switch多分支语句

在编程中,一个常见的问题就是检测变量是否符合某个条件,如果不符合,再用另一个值来检测。

例如,使用if语句对考试成绩进行评估,关键代码如下:

  1. if(grade =='A'){
  2. Systeem.out.println("真棒");
  3. }
  4. if(gread =='B'){
  5. System.out.println("做得不错");
  6. }

在Java中,可以用switch语句将动作组织起来,以一个简单明了得方式来实现“多选一”得选择。语法如下:

  1. switch(表达式){
  2. case 常量值1
  3. 语句块1
  4. [break;]
  5. case 常量值n;
  6. 语句块n
  7. [break;]
  8. default:
  9. 语句块n+1;
  10. [break;]
  11. }

switch语句中表达式的值必须是整型、字符型、字符串类型或枚举类型,常量值1~n的数据类型必须与表达式的值的类型相同。

例4,使用switch语句为考试分数分级

创建Grade类,使用Scanner类在控制台输入分数,然后switch多分支语句判断输入的分数属于哪类成绩。10分和9分属于优,8分属于良,7分和6分属于中,5分、4分、3分、2分、1分以及0分均属于差。

代码:

  1. import java.util.Scanner;//引入Scanner类
  2. public class Grade {//创建类
  3. public static void main(String[] args) {//主方法
  4. Scanner sc = new Scanner(System.in);//创建扫描器,接收控制台输入内容
  5. System.out.println("请输入成绩");//输出字符串
  6. int grade = sc.nextInt();//获取控制台输入的数字
  7. switch(grade) {//使用switch判断数字
  8. case 10://如果等于10,则继续执行下一行代码
  9. case 9://如果等于9
  10. System.out.println("成绩为优");//输出“成绩优先”
  11. break;//结束判断
  12. case 8://如果等于8
  13. System.out.println("成绩为良");//输出“成绩为良”
  14. break;//结束判断
  15. case 7://如果等于7,则继续执行下一行代码
  16. case 6://如果等于6
  17. System.out.println("成绩为中");//输出“成绩为中”
  18. break;//结束判断
  19. case 5://如果等于5,则继续执行下一行代码
  20. case 4://如果等于4,则继续执行下一行代码
  21. case 3://如果等于3,则继续执行下一行代码
  22. case 2://如果等于2,则继续执行下一行代码
  23. case 1://如果等于1,则继续执行下一行代码
  24. case 0://如果等于0
  25. System.out.println("成绩为差");//输出“成绩为差”
  26. break;//结束判断
  27. default://如果不符合以上任何一个结果
  28. System.out.println("成绩无效");//输出“成绩无效”
  29. }
  30. sc.close();//关闭扫描器
  31. }
  32. }

运行结果

流程图:

3.循环语句

3.1 while 循环语句

while 语句也称条件判断语句,它的循环方式为利用一个条件来控制是否要继续反复执行这个语句。语法如下:

  1. while(条件表达式){
  2. 语句序列
  3. }

例5,计算1~1000的相加结果

创建GetSum类,在主方法中通过while循环计算1~1000相加的和并输出。

代码:

  1. public class GetSum {//创建类
  2. public static void main(String[] args) {//主方法
  3. int x = 1;//从1开始
  4. int sum = 0;//相加的结果
  5. while(x<=1000) {//循环1000次
  6. sum = sum+x;//sum与之前计算的和相加
  7. x++;//每次循环后x的值+1
  8. }
  9. System.out.println("sum="+sum);//输出最终的相加结果
  10. }
  11. }

运行结果

流程图:

3.2 do…while循环语句

do…while循环语句与while循环语句类似,它们之间的区别是while语句为先判断是否成立再执行循环体,而do…while循环语句则先执行一次循环后,再判断条件是否成立。也就是说,do…while循环语句“ { } ”中的程序至少要被执行一次。语法如下:

  1. do{
  2. 语句序列
  3. }while(条件表达式);

例6,使用do…while语句进行用户登录验证

创建LoginService类,首先提示用户输入6位密码,然后使用Scanner扫描器获取用户输入的密码,最后进入do…while循环进行判断,如果用户输入的密码不是“931567”,则让用户反复输入,直到输入正确密码为止。

代码:

  1. import java.util.Scanner;//引入scanner类
  2. public final class LoginService {//创建类
  3. public static void main(String[] args) {//主方法
  4. Scanner sc =new Scanner(System.in);//创建扫描器,获取控制台输入的值
  5. int password;//保存用户输入的密码
  6. do {
  7. System.out.println("请输入6位数字密码:");//输入提示
  8. password = sc.nextInt();//将用户在控制台输入的密码记录下来
  9. }while(931567 != password);//如果用户输入的密码不是931567则进行执行循环
  10. System.out.println("登陆成功");//提示循环已结束
  11. sc.close();//关闭扫描器
  12. }
  13. }

运行结果:

流程图:

3.3 for循环语句

for循环是Java程序设计中最有用的循环之一。一个for循环可以用来重复执行某条语句,直到某个条件得到满足。for循环有两种语句,一种是传统的for语句,一种是foreach语句。

1、for语句

for的传统语句有三个表达式,语法如下:

  1. for(表达式1;表达式2;表达式3){
  2. 语句序列
  3. }

例7,使用for循环计算2~100所有偶数之和

创建Circulate类,编写程序,使用for循环语句计算2~100所有偶数的和并输出。

代码:

  1. public class Circulate {//创建类
  2. public static void main(String[] args) {//主方法
  3. int sum = 0;//偶数相加后的结果
  4. for(int i =2;i<=100;i+=2) {
  5. sum = sum + i;//指定循环条件及循环体
  6. }
  7. System.out.println("2到100之间所有偶数之和为:"+sum);//将相加后的结果输出
  8. }
  9. }

运行结果:

流程图:

2.foreach语句

foreach语句是for语句的特殊简化版本,不能完全取代for语句,但任何foreach语句都可以改写为for语句版本。foreach语句并不是一个关键字,习惯上将这种特殊的for语句格式称为foreach语句。语法如下:

  1. for(元素类型x:遍历对象obj){
  2. 引用了x的Java语句;
  3. }

例8,使用foreach语句遍历整个数组

创建类Repetition,在主方法中定义一堆数组,并用foreach语句遍历该数组。

代码:

  1. public class Repetition {//创建类
  2. public static void main(String[] args) {//主方法
  3. int arr[] = {5,13,96};//一维整型数组
  4. System.out.println("一维数组中的元素分别为:");
  5. //x的类型与arr元素的类型相同。for循环依此取出arr中的值并赋值给x
  6. for(int x:arr) {
  7. System.out.println(x);//输出遍历出的元素值
  8. }
  9. }
  10. }

运行结果:

流程图:

4.循环控制

4.1 break语句

使用break语句可以跳出switch结构。在循环结构中,同样也可以用break语句跳出当前循环体,从而中断当前循环。

例9,输出1~20出现的第一个偶数

创建BreakTest类,循环输出1~20的偶数值,在遇到第一个偶数时,使用break语句结束循环。

代码:

  1. public class BreakTest {//创建类
  2. public static void main(String[] args) {//主方法
  3. for(int i=1;i<20;i++) {
  4. if(i %2 ==0) {//如果i是偶数
  5. System.out.println(i);//输出i的值
  6. break;//结束循环
  7. }
  8. }
  9. System.out.println("--end--");//结束时输入一行文字
  10. }
  11. }

运行结果:

流程图:

如果想让break跳出外层循环,Java提供了“标签”的功能,语法如下:

  1. 标签名:循环体{
  2. break标签名;
  3. }

标签名:任意标识符。

循环体:任意循环语句。

break标签名:break跳出指定的循环体,此循环体的标签名必须与break的标签名一致。带有标签的break可以指定跳出循环,这个循环可以是内层循环,也可以是外层循环。

例10,使用标签让break结束外层循环

创建BreakInsideNested类,在该类中写两层for循环,第一层for语句循环3次,第二层for语句循环5此。当第二层for循环至第四次时,强行使用break中断循环。输出程序执行时外层循环和内层循环各循环了多少次。

代码:

  1. public class BreakInsideNested {//创建类
  2. public static void main(String[] args) {//主方法
  3. for(int i =1;i<=3;i++) {//外层循环
  4. for(int j=1;j<=5;j++) {//内层循环
  5. if(j==4) {//内层循环至第四次就结束
  6. break;
  7. }
  8. System.out.println("i="+i+"j="+j);
  9. }
  10. }
  11. }
  12. }

运行结果:

流程图

4.2 continue语句

continue语句是针对break语句的补充。continue不是立即跳出循环体,而是跳过本次循环,回到循环的条件测试部分,重新开始执行循环。在for循环语句中遇到continue后,首先执行循环的增量部分,然后进行条件测试。在while和do…while循环中,continue语句使控制直接回到条件测试部分。

例11,输出1~20的奇数

创建ContinueTeat类,编写一个for循环从1循环至20,如果当前循环的次数为偶数,则使用continue语句跳过循环。

代码:

  1. public final class ContinueTeat {//创建类
  2. public static void main(String[] args) {//主方法
  3. for(int i=1;i<=20;i++) {
  4. if(i%2==0) {//如果i是偶数
  5. continue;//跳出下一循环
  6. }
  7. System.out.println(i);//输出i的值
  8. }
  9. }
  10. }

运行结果:

流程图

课堂作业

for循环内部嵌套一个while循环

流程:

  1. 1
  2. for{(2;3;4)
  3. 5
  4. while(条件){
  5. 6
  6. }
  7. 7
  8. }
  9. 8

流程图:

do...while循环内部嵌套一个for循环

流程:

  1. 1
  2. do{
  3. 2
  4. for345){
  5. 6
  6. }
  7. 7
  8. }while (条件)
  9. 8

流程图

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/151170
推荐阅读
相关标签
  

闽ICP备14008679号