举例说明,循环结构用于解决哪些问题?
用于解决遇到输入一样的事务时进行的编写,比如写100遍哈哈哈等
为什么需要循环?
使用循环后可以更快的输出想要的结果,并且简化了代码量,减少了开发时间
什么是循环?
循环就是重复做一件事很多遍
循环结构的特点:
具有循环条件和循环操作
什么是while循环?
while ( 循环条件 ) {
循环操作
}
循环条件中:符合条件,循环继续执行;否则,循环退出
循环操作:循环中被重复执行的操作
编码规范:缩进、换行
使用while循环结构的步骤:
确定循环条件和循环操作
套用while语法写出代码
检查循环是否能够退出
要求使用加法运算符对100个数值2求和,请指出循环条件和循环操作
Java循环结构中使用了哪些关键字?
break ,continue ,goto
while循环的特点是什么?
while循环结构特点:先判断,再执行
为什么需要程序调试
在编写程序过程中有时也出现错误,但不好发现和定位错误
通过代码阅读或者加输出语句查找程序错误
当程序结构越来越复杂时,需要专门的技术来发现和定位错误,就是“程序调试”
什么是程序调试?
逐条语句执行程序 ,观察程序执行情况 ,发现问题 ,解决问题
当程序出现闪一下就结束时应当设置断点, 单步运行, 观察变量
程序调试有哪些步骤?
步骤1:分析错误,设置断点
步骤2:启动调试
步骤3:单步运行
调试启动后,运行到设置断点的代码行将停住
点击F6键可以单步运行程序,观察程序运行过程
步骤4:观察变量
单步运行时可以在“变量”视图中看到变量当前的值
步骤5:发现问题
变量i值变为5时就退出了循环,循环只进行4次
步骤6:修正代码,重新运行
修改循环条件为: i <= 5
步骤7:解决问题
程序调试的目的?
找出缺陷原因,修正缺陷
程序调试的主要方法?
设置断点、单步执行、观察变量
do -while
do {
循环操作
} while ( 循环条件 );
符合条件,循环继续执行;否则,循环退出
特点:先执行后判断
while循环和do-while循环的区别
语法不同
while(循环条件){循环操作}
do{循环操作}while(循环条件);
执行次序不同
初始情况不满足循环条件时
while循环一次都不会执行
do-while循环不管任何情况都至少执行一次
for循环
for(参数初始化;条件判断;更新循环变量){
循环操作
}
执行顺序:
参数初始化——条件判断——循环操作——更新循环变量
代码规范:格式对齐、代码的缩进
使用for循环
1. 循环初始化:i = 0;j = 输入值
2. 循环条件:i<=输入值
3. 循环操作:计算i+j
4. 循环变量的改变:i++,j--
for循环:
确定循环次数
特点:先判断,在执行
参数初始化中可以声明多个同一类型的值并赋值用,隔开
什么是break?
break:改变程序控制流
用于do-while、while、for中时,可跳出循环而执行循环后面的语句
continue :只能用在循环里
continue 作用:跳过循环体中剩余的语句而执行下一次循环
顺序结构:是一种线性、有序的结构
选择结构:是根据条件成立与否选择程序执行的路径
循环结构:是在一定条件下反复执行一个或几个语句
跳转语句break,continue:是改变程序执行路径的语句
break和continue对比:
使用场合
break常用于switch结构和循环结构中
continue一般用于循环结构中
作用(循环结构中)
break语句终止某个循环,程序跳转到循环块外的下一条语句
continue跳出本次循环,进入下一次循环
执行顺序
while 循环:先判断,再执行
do-while循环:先执行,再判断
for循环:先判断,再执行
适用情况
循环次数确定的情况,通常选用for循环
循环次数不确定的情况,通常选用while或do-while循环
二重循环
什么是二重循环?
一个循环体内又包含另一个完整的循环结构
while(循环条件1) { //循环操作1 while(循环条件2) { //循环操作2 } }
do { //循环操作1 do { //循环操作2 }while(循环条件1); }while(循环条件2);
for(循环条件1) { //循环操作1 for(循环条件2) { //循环操作2 } }
while(循环条件1) { //循环操作1 for(循环条件2) { //循环操作2 } }
如何使用二层循环?
public class Rectangle {
public static void main(String[] args) {
System.out.println("打印矩形");
for(int i = 1; i <= 5; i++){
//打印第i行
for(int j = 1; j <= 5; j++){
//打印5个*号 System.out.print("*");
}
System.out.print(" "); //换行 }
}
}
内层循环控制打印5个*
外层循环控制行数
在二重循环中使用continue
for(int i = 0; i < classnum; i++){
//…
for(int j = 0; j < score.length; j++){
//…
if(score[j] < 85) {
continue;
}
count++; }
//…
}
执行continue,进入本层循环的下一轮循环,不再执行count++
在二重循环中使用break
for(int i = 0; i < 5; i++){
System.out.println("欢迎光临第" + (i+1) + "家专卖店");
for(int j = 0; j < 3; j++){
System.out.println("要离开吗(y/n)?");
choice = input.nextLine();
if("y".equals(choice)){
break;
}
System.out.println("买了一件衣服");
count++; //计数器加1
}
//……
}
执行break,跳出内层循环,继续执行外层循环的语句
二重循环中continue和break对比
for(…){
for(…) {
//…… 继续本层下一轮循环
continue;
//…… }
//…… }
for(…){
for(…) {
//……
break; 跳出本层循环
//……
}
//……
}