目录
循环结构
1.while循环
while循环
while单词:当
循环结构都有四个必不可少的条件
- 计数器初始化
- 判断条件
- 循环体
- 计数器变化
while循环可以用于处理循环次数确定或者不确定的情况
实际开发环境中:通常用于处理循环次数不定的情况,因为循环次数确定有更为简洁的循环结构for循环
public class Test1 {
public static void main(String[] args) {
// 计数器初始化
int i = 2;
while(i <= 1){ // 判断条件
System.out.println("第"+ i +"遍好好学习"); //循环体
i++; // 计数器变化
}
System.out.println("程序结束");
}
}
2.do-while循环
do-while循环可以用于处理循环次数不确定的情况,因为次数确定有更为简洁的循环结构for循环
while和do-while的区别?
while循环是先判断后执行,如果条件不成立一次也不执行
do-while循环先执行后判断,不管条件是否成立,至少执行一次
import java.util.Scanner;
/**
* do-while循环:做……当……
* 先执行后判断,不管条件是否成立,至少执行一次
*
* 经过几天的学习,老师给赵四一道测试题,让他先上机编写程序完成,
* 然后老师检查是否合格。如果不合格,则继续编写……
*
* do-while可以用于处理循环次数不确定或者确定的情况
* 实际开发中:使用do-while处理循环次数不确定的情况,因为次数确定有更为简洁的循环结构 for循环
*
* while和do-while的区别?
* while循环是先判断后执行,如果条件不成立一次都不执行
* do-while循环先执行后判断,不管条件是否成立,至少执行一次
*/
public class Test1 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String answer;
do{
System.out.println("上机编写程序……");
System.out.println("请输入学习任务是否合格?y/n");
answer = input.next();
// System.out.println("上机编写程序……");
//
// System.out.println("请输入学习任务是否合格?y/n");
//
// answer = input.next();
}while(answer.equals("n"));
//
// if(answer.equals("n")){
//
// System.out.println("上机编写程序……");
//
// }else{
//
// System.out.println("恭喜你完成学习任务");
//
// }
System.out.println("恭喜你完成学习任务");
}
}
3.for循环
for循环:为了.....
for循环用于处理循环次数确定的情况
import java.util.Scanner;
/**
* 需求:循环输入某同学结业考试的5门课成绩,并计算平均分
*/
public class Test2 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入姓名");
String name = input.next();
double sum = 0;
for(int i = 1;i <= 5;i++){
System.out.println("请输入5门成绩的" + i + "门成绩");
double score = input.nextDouble();
sum = sum + score;
}
System.out.println("平均分是:" + sum / 5);
}
}
3.1for循环常见问题
for循环常见问题1:计数器未初始化
/**
* for循环常见问题1:计数器未初始化
*/
public class Test4 {
public static void main(String[] args) {
int i = 1;
for(;i <= 10;i++){
System.out.println(i);
}
}
}
for循环常见问题2:缺少判定条件,导致死循环
/**
* for循环常见问题2:缺少判断条件
*/
public class Test5 {
public static void main(String[] args) {
for(int i = 1;;i++){
System.out.println(i);
}
// System.out.println(); 不可达代码
}
}
for循环常见问题3:缺少计数器变化,导致死循环
/**
* for循环常见问题3:缺少计数器变化
*/
public class Test6 {
public static void main(String[] args) {
for(int i = 0;i < 10;){
System.out.println(i);
}
System.out.println();
}
}
for循环常见问题4:for小括号内只写两个分号
/**
* for循环常见问题4:for小括号内只写两个分号
*/
public class Test7 {
public static void main(String[] args) {
for(;;){
System.out.println("hello");
}
}
}
4.三种循环对比
区别1:执行顺序
while循环:先判断,后执行
do-while循环:先执行,后判断
for循环:先判断,后执行
区别2:适用情况
循环次数确定的情况,通常使用for循环
循环次数不确定的情况,通常选用while或do-while循环
5.break关键字
break:可以用于switch或者循环结构中,分别表示跳出switch结构或者中断循环结构,没有执行完的循环次数不再执行
break再循环中通常结合分支语句来使用
public class Test1 {
public static void main(String[] args) {
for(int i = 1;i <= 10;i++){
System.out.println("跑步第"+ i +"圈");
if(i == 5){
System.out.println("太累了,退出");
break;
}
}
System.out.println("程序结束");
}
}
6.continue关键字
continue:只能用在循环中,表示跳出本次循环,继续执行下一次循环
public class Test1 {
public static void main(String[] args) {
for(int i =1; i <= 10;i++){
if(i == 5){
continue; // break 对比效果
}
System.out.println(i);
}
}
}
7.break和continue区别
使用场合
break用于switch结构和循环结构中
continue用于循环结构中
作用(循环结构中)
break语句终止某个循环,程序跳转到循环外的下一条语句
continue跳出本次循环,进入下一次循环
双重循环亦如此
8.debug调试
9.多重循环
分别使用单层循环以及双重循环打印矩形
外层循环变量变化一次,内层循环变量变化一轮
外层循环控制行数 内层循环控制列数
使用多重循环打印平行四边形
当我们打印三角形 第一行元素的个数决定了计数器的初始值
如果元素越来越多 那么就++ 当计数器为++ 我们必须设置一个上限 也就是条件必须小于或者小于等于某个值
如果元素越来越少 那么就-- 当计数器未-- 我们必须设置之一个下限 也就是条件必须大于或者大于等于某个值
/**
* 使用多重循环打印平行四边形
* 当我们打印三角形 第一行元素的个数决定了计数器的初始值
* 如果元素越来越多 那么就++ 当计数器为++ 我们必须设置一个上限 也就是条件必须小于或者小于等于某个值
*
* 如果元素越来越少 那么就-- 当计数器未-- 我们必须设置之一个下限 也就是条件必须大于或者大于等于某个值
*/
public class Test1 {
public static void main(String[] args) {
for (int i = 1; i <= 5 ; i++) { // 外层循环 5行
// 左半部分 倒三角
for(int j = 5;j >= i;j--){
System.out.print("&");
}
// 右半部分 矩形
for (int j = 1; j <= 5; j++) {
System.out.print("*");
}
// 换行
System.out.println();
}
}
}