概述
文章目录
- 流程控制
- 一、接收用户输入
- 二、执行结构概述
- 三、if分支
- 四、switch
- 五、循环_while
- 六、do while循环
- 七、for循环
- 八、循环嵌套图形打印
- 九、break与continue
- 十、如何退出多重循环
- 十一、图形打印详解
- 十二、判断用户输入类型
- 总结
流程控制
总结了一下好几天前学习的流程控制的笔记。
一、接收用户输入
使用Java内部提供的Scanner类,用于接收用户键盘输入。Java所提供的一个工具,其中封装了许多方法,每个方法都有不同的功能可供我们使用。
-
语法格式:类型 变量 = new 类(参数)
Scanner input = new Scanner(System.in); //用于接收各种数据类型: int i = input.nextInt(); //nextLine方法不要与其他next方法同时使用 String str1 = input.next(); String str2 = input.nextLine();
new:创建、引用数据类型的对象,可认为是变量值。(对象在后面学到)
System.in:扫描系统的输入
二、执行结构概述
任何简单和复杂的算法都可以由顺序结构、分支结构和循环结构这三种基本结构组成。
-
顺序结构
按照语句的出现顺序执行
-
分支结构
程序执行时出现分支,根据条件成立与否判断选择哪一条分支
-
循环结构
需要重复执行、运算的一些操作,重复执行某一循环体,直到条件不满足结束
- 例如:写一个程序计算每个人的考试成绩,此时多次的累加就需要重复执行,这时就可以写一个循环结构
- 注意:一般来说,循环执行结构一定要有出口
三、if分支
if条件语句:如条件符合,则执行XX代码语句
条件语句为Boolean结果表达式
-
语法格式(4种)
//1.如果条件结果为true,则执行体(大括号中的代码)运行 if(条件语句){...} //2.如果条件结果为true,则执行体运行,否则执行else后面的语句 if(条件语句){...}else{...} //3.两个条件,若满足if条件则执行体运行并结束;若不满足if条件,判断else if条件,满足则执行else if执行体语句 if(条件语句){…}else if(条件语句){…} //4.判断是否满足条件,满足则执行体运行并结束,若前面的条件都不满足,运行最后的else执行体 if(条件语句){…}else if(条件语句){…}else{…}
-
例1:判断成绩是否合格
if(s >= 60) { System.out.println("成绩合格"); } else { System.out.println("成绩不合格"); }
-
例2:判断成绩等级
if(s > 120 || s < 0) { System.out.println("成绩输入有误"); } else if(s >= 90) { System.out.println("优"); } else if(s >= 80) { System.out.println("良"); } else if(s >= 70) { System.out.println("中"); } else if(s >= 60) { System.out.println("及格"); } else { System.out.println("不及格"); }
四、switch
-
语法格式:
//switch块里包含case,表示如果表达式的结果满足取值n,则执行语句块n,直到遇见break关键字,跳出这个选择继续执行下方代码;若所有case都不匹配,则执行default中语句块n+1,直到遇见break switch(表达式){ case取值1:语句块1;break; case取值n:语句块n;break; default:语句块n+1;break; }
-
规则:
- 表达式的结果是int、byte、char、short、String类型
- case子句中的取值必须是常量(不会变化的值),且不能重复
- case后面的执行体可写{}也可以不写{}
- default子句是可选的,可以不写,不写时若没有匹配的case则switch语句不会进行任何操作
-
特殊情况:若case1子句最后没写break,则不管是否与case2匹配,都会继续执行case2语句,直到遇见break才会跳出选择。
-
例:根据用户输入月份来判断季节
switch(month) { case 1: case 2: case 3: System.out.printlb("春季"); break; case 4: case 5: case 6: System.out.printlb("夏季"); break; case 7: case 8: case 9: System.out.printlb("秋季"); break; case 10: case 11: case 12: System.out.printlb("冬季"); break; default: System.out.println("输入的月份有误,请检查!"); break; }
五、循环_while
和if语句类似,条件满足就执行某段代码。
-
循环语句功能
在循环条件满足的情况下,反复执行特定代码
-
循环语句分类:(3类)
for循环
while循环
do/while循环
while循环
-
先判断,若符合条件,循环继续执行,否则循环退出。
-
语法格式:
while(条件表达式){ //语句块; }
-
使用while循环的步骤
- 分析循环条件(循环次数)和循环操作(循环内容)
- 套用while语法写出代码
- 检查循环是否能够退出
int i = 0; while(i < 10) { //更新循环变量 i++; System.out.println("循环:"+i); }
-
例:录入班级人数和学员成绩,计算班级学员的平均成绩
//s使用变量studentNum记录班级总人数 int studentNum = input.nextInt(); //用于记录循环的次数,以及控制循环何时结束 int i = 0; //定义变量sum,用于统计总分数 int sum = 0; whlie(i < studentNum) { i++; System.out.println("请输入第"+i+"个学生的成绩:"); int s = input.nextInt(); sum += s; } System.out.println("学生的平均成绩为"+sum/studentNum);
六、do while循环
先执行,再判断。
- 语法格式
do { 循环操作 } while (条件表达式);
while和do while的区别:
区别在于第一次判断是否成立,不成立时:while程序不执行,直接结束;do while程序先执行一次执行体中的内容再结束。
while是先判断,如果满足条件则继续执行,否则退出。do while是先执行一次循环体,再判断,如果满足条件继续执行,否则退出。
do while的应用场景比while循环少很多,常用于要做第一次操作。
七、for循环
-
例:打印文字从0~9
-
while循环:
int i = 0 while (i < 10) { System.out.println(i); i++; }
-
for循环:
//for ([定义循环变量];[判断循环条件];][更新循环变量]) {} for (int i = 0;i < 10;i++) { System.out.println(i); } for(;;){}//(;;)相当于(;true;)死循环
i:控制循环次数的循环变量,值一直会变化
判断循环条件,条件满足一直循环执行,条件不满足循环结束。
i++:更新循环变量
八、循环嵌套图形打印
经常用来执行一些复杂运算
- 语法格式:
//外层循环控制内层循环执行10次 for(int i = 0; i < 10; i++) { //内层循环也会执行10次 for(int j = 0;j < 10;j++) { //总共执行100次 } }
- 例:用循环打印一个10行10列的*图形
//外层循环控制行数 for(int i = 0; i < 10; i++) { //System.out.println("* * * * * * * * * *"); //内层循环控制列数 for(int j = 0;j < 10;j++) { System.out.print("* "); } System.out.println(); }
九、break与continue
循环的退出:break和continue
都能用于退出循环
break用于结束循环,continue用于结束一轮循环中的某一次
- 例:
for(int i =0;i < 10;i++) { if(i==5) { //break结果为0 1 2 3 4 //break; //continue结果为0 1 2 3 4 6 7 8 9 continue; } System.out.println(i); }
区别:i=5时,continue结束了那一次循环,然后继续i++往下执行,从6继续。break直接结束所有循环。
十、如何退出多重循环
for(int i = 0;i < 10;i++) {
//给循环起别名
bieming:for(int j = 0;j < 10;j++) {
System.out.println("i="+i+",j="+j);
if(i == 5 && j == 5) {
break bieming;
}
}
}
当想要退出n重循环时,只需要给循环起一个别名(任意字母),当触发某条件时,跳出该别名的循环即可。
十一、图形打印详解
嵌套循环打印图形以什么思路思考?
外层循环控制行数,内层循环控制列数。
- 图形1:
* *** ***** *******
- 解决方案:
外层循环:4
内层循环:第一行时循环1次,第二行时循环3次,第三行时循环5次,第四行时循环7次。for(int i = 0;i < 4;i++) { for(int j = 0;j < i * 2 + 1;j++) { System.out.print("*"); } System.out.println(); }
控制行直接数多少行即可,控制列要找到规律,并通过循环条件判断。
-
图形2:
* *** ***** *******
-
解决方案:
外层循环:4
内层循环1:控制空格的列数,第一行时3个空格,第二行时2个空格,第三行时1个空格,第四行时0个空格。
内层循环2:控制*的列数,第一行时循环1次,第二行时循环3次,第三行时循环5次,第四行时循环7次。for(int i = 0;i < 4;i++) { //i:0 1 2 3 for(int j = i+1;j < 4;j++) { System.out.print(" "); } for(int j = 0;j < i*2+1;j++) { System.out.print("*"); } System.out.println(); }
-
图形3:
* *** ***** ******* ***** *** *
-
解决方案:和图形三一样的,就是反过来了。
for(int i = 0;i < 4;i++) { for(int j = i + 1;j < 4;j++) { System.out.print(" "); } for(int j = 0;j < i*2+1;j++) { System.out.print("*"); } System.out.println(); } for(int i = 0;i < 3;i++) { for(int j = 0;j < i+1;j++) { System.out.print(" "); } for(int j = 6;j > i*2+1;j--) { System.out.print("*"); } System.out.println(); }
-
图形四:思考ing
* * * * * * * * * * * *
十二、判断用户输入类型
在接收用户输入的数据前判断数据类型
if(input.hasNextInt()) {
...
} else {
System.out.println("输入类型错误");
}
总结
流程控制是相当重要的一个内容,几天没看就不熟悉了,这个脑子。多看多记多练习!!!
最后
以上就是直率香氛为你收集整理的【2-4】《Java流程控制——循环语句》——Scanner接收用户输入、if语句、switch语句、while循环、do while循环、for循环、嵌套循环图形打印、break流程控制总结的全部内容,希望文章能够帮你解决【2-4】《Java流程控制——循环语句》——Scanner接收用户输入、if语句、switch语句、while循环、do while循环、for循环、嵌套循环图形打印、break流程控制总结所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复