04-02.总结switch,for,while,do。while跳转语句

时间:2022-05-04
本文章向大家介绍04-02.总结switch,for,while,do。while跳转语句,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
(4)do...while循环

A:基本格式

do {

循环体语句;

}while(判断条件语句);

扩展格式:

初始化语句;

do {

循环体语句;

控制条件语句;

}while(判断条件语句);

通过查看格式,我们就可以看出其实三种循环的格式可以是统一的。

/*
 do...while循环的基本格式:
 do {
 循环体语句;
 }while(判断条件语句);
 扩展格式;
 初始化语句;
 do {
 循环体语句;
 控制条件语句;
 }while(判断条件语句);
*/
class DoWhileDemo {
 public static void main(String[] args) {
 //输出10次HelloWorld。
 int x = 0;
 do {
 System.out.println("HelloWorld");
 x++;
 }while(x<10);
 System.out.println("--------------");
 //求和1-100
 int sum = 0;
 int a = 1;
 do {
 sum += a;
 a++;
 }while(a<=100);
 System.out.println(sum);
 }
}
 B:三种循环的区别
 a:do...while循环至少执行一次循环体
 b:for和while必须先判断条件是否是true,然后后才能决定是否执行循环体
/*
 循环语句的区别:
 do...while循环至少执行一次循环体。
 而for,while循环必须先判断条件是否成立,然后决定是否执行循环体语句。
 那么,我们一般使用哪种循环呢?
 优先考虑for,其次考虑while,最后考虑do...while
*/
class DoWhileDemo2 {
 public static void main(String[] args) {
 int x = 3;
 while(x < 3) {
 System.out.println("我爱林青霞");
 x++;
 }
 System.out.println("--------------");
 int y = 3;
 do {
 System.out.println("我爱林青霞");
 y++;
 }while(y < 3);
 }
}

(5)循环使用的注意事项(死循环)

A:一定要注意修改控制条件,否则容易出现死循环。

B:最简单的死循环格式

a:while(true){...}

b:for(;;){}

/*
 注意死循环:
 A:一定要注意控制条件语句控制的那个变量的问题,不要弄丢了,否则就容易死循环。
 B:两种最简单的死循环格式
 while(true){...}
 for(;;){...}
*/
class DoWhileDemo3 {
 public static void main(String[] args) {
 int x = 0;
 while(x < 10) {
 System.out.println(x);
 x++;
 }
 System.out.println("--------------");
 /*
 while(true) {
 System.out.println("今天我很高兴,学习了死循环");
 }
 */
 for(;;){
 System.out.println("今天我很高兴,学习了死循环");
 }
 //System.out.println("--------------");
 }
}
 
 (6)循环嵌套
/*
 需求:请输出一个4行5列的星星(*)图案。
 结果:
 *****
 *****
 *****
 *****
 循环嵌套:就是循环语句的循环体本身是一个循环语句。
 通过结果我们知道这样的一个结论:
 外循环控制行数
 内循环控制列数
*/
class ForForDemo {
 public static void main(String[] args) {
 //原始做法
 System.out.println("*****");
 System.out.println("*****");
 System.out.println("*****");
 System.out.println("*****");
 System.out.println("-------------");
 //虽然可以完成需求,但是不是很好
 //如果是多行多列就会比较麻烦
 //所以我们准备改进
 //如何改进呢?
 //我先考虑如何实现一行*的问题
 //System.out.println("*****");
 //我们要想的是如何实现一次输出一颗*的问题
 //System.out.println("*");
 //System.out.println("*");
 //现在虽然可以一次一颗*,但是却换行了,我要求不能换行,怎么办呢?
 //输出语句的另一种格式:System.out.print(); 这个是不带换行的
 //System.out.print("*");
 //System.out.print("*");
 //System.out.print("*");
 //System.out.print("*");
 //System.out.print("*");
 //如果我要在一行上打出多颗*,比较麻烦,而代码是重复的,所以我决定用循环改进
 for(int x=0; x<5; x++) {
 System.out.print("*");
 }
 //我们可以通过空的输出语句实现换行:System.out.println();
 System.out.println();
 //既然我可以打出一行,我就可以打出第二行
 for(int x=0; x<5; x++) {
 System.out.print("*");
 }
 //我们可以通过空的输出语句实现换行:System.out.println();
 System.out.println();
 //同理打出第三行,第四行
 for(int x=0; x<5; x++) {
 System.out.print("*");
 }
 //我们可以通过空的输出语句实现换行:System.out.println();
 System.out.println();
 //既然我可以打出一行,我就可以打出第二行
 for(int x=0; x<5; x++) {
 System.out.print("*");
 }
 //我们可以通过空的输出语句实现换行:System.out.println();
 System.out.println();
 System.out.println("-----------------");
 //同样的代码出现了4次,说明我们程序写的不好,用循环改进
 for(int y=0; y<4; y++) {
 for(int x=0; x<5; x++) {
 System.out.print("*");
 }
 //我们可以通过空的输出语句实现换行:System.out.println();
 System.out.println();
 }
 }
}
/*
 需求:请输出下列的形状
 *
 **
 ***
 ****
 *****
*/
class ForForDemo2 {
 public static void main(String[] args) {
 //通过简单的观察,我们看到这是一个行是5,列数是变化的形状
 //我们先打印出一个5行5列的形状
 for(int x=0; x<5; x++) {
 for(int y=0; y<5; y++) {
 System.out.print("*");
 }
 System.out.println();
 }
 System.out.println("--------------");
 //我们实现了一个5行5列的形状
 //但是这不是我们想要的
 //我们要的是列数变化的
 //列数是如何变化的呢?
 //第一行:1列 y=0,y<=0,y++
 //第二行:2列 y=0,y<=1,y++
 //第三行:3列 y=0,y<=2,y++
 //第四行:4列 y=0,y<=3,y++
 //第五行:5列 y=0,y<=4,y++
 //在看外循环x的变化,恰好就是x=0,1,2,3,4
 //所以这个最终版的程序就是如下
 for(int x=0; x<5; x++) {
 for(int y=0; y<=x; y++) {
 System.out.print("*");
 }
 System.out.println();
 }
 }
}
/*
 需求:在控制台输出九九乘法表。
 首先我们写出九九乘法表:
 1*1=1
 1*2=2 2*2=4
 1*3=3 2*3=6 3*3=9
 1*4=4 2*4=8 3*4=12 4*4=16
 ...
 1*9=9 2*9=18 3*9=27 ...
 我们先把这个九九乘法表看出是这样的一个形状:
 *
 **
 ***
 ****
 *****
 ******
 *******
 ********
 *********
 注意:
 'x' x表示任意,这种做法叫转移字符。
 't' tab键的位置
 'r' 回车
 'n' 换行
*/
class ForForDemo3 {
 public static void main(String[] args) {
 for(int x=0; x<9; x++) {
 for(int y=0; y<=x; y++) {
 System.out.print("*");
 }
 System.out.println();
 }
 System.out.println("--------------");
 //为了使用数据,我们从1开始
 for(int x=1; x<=9; x++) {
 for(int y=1; y<=x; y++) {
 System.out.print(y+"*"+x+"="+y*x+"t");
 }
 System.out.println();
 }
 }
}
3:控制跳转语句(掌握)
 (1)break:中断的意思
 A:用在循环和switch语句中,离开此应用场景无意义。
 B:作用
 a:跳出单层循环
 b:跳出多层循环,需要标签语句的配合
/*
 控制跳转语句:
 break:中断
 continue:继续
 return:返回
 break:中断的意思
 使用场景:
 A:switch语句中
 B:循环语句中。
 (循环语句中加入了if判断的情况)
 注意:离开上面的两个场景,无意义。
 如何使用呢?
 A:跳出单层循环
 B:跳出多层循环
 要想实现这个效果,就必须知道一个东西。带标签的语句。
 格式:
 标签名: 语句
*/
class BreakDemo {
 public static void main(String[] args) {
 //在 switch 或 loop 外部中断
 //break;
 //跳出单层循环
 for(int x=0; x<10; x++) {
 if(x == 3) {
 break;
 }
 System.out.println("HelloWorld");
 }
 System.out.println("over");
 System.out.println("-------------");
 wc:for(int x=0; x<3; x++) {
 nc:for(int y=0; y<4; y++) {
 if(y == 2) {
 //break nc;
 break wc;
 }
 System.out.print("*");
 }
 System.out.println();
 }
 }
}
 (2)continue:继续
 A:用在循环中,离开此应用场景无意义。
 B:作用
 a:跳出单层循环的一次,可以继续下一次
 C:填空题
 for(int x=1; x<=10; x++) {
 if(x%3 == 0) {
 //补齐代码
 }
 System.out.println("Java基础班");
 }
 如何让控制台输出2次:Java基础班
 如何让控制台输出7次:Java基础班
 如何让控制台输出13次:Java基础班
/*
 continue:继续
 使用场景:
 循环中。离开此场景无意义。
 测试,找到和break的区别:
 break:跳出单层循环
 continue:跳出一次循环,进入下一次的执行
 练习题:
 for(int x=1; x<=10; x++) {
 if(x%3==0) {
 //在此处填写代码
 }
 System.out.println(“Java基础班”);
 }
 我想在控制台输出2次:“Java基础班“
 break;
 我想在控制台输出7次:“Java基础班“
 continue;
 我想在控制台输出13次:“Java基础班“ 
 System.out.println(“Java基础班”);
*/
class ContinueDemo {
 public static void main(String[] args) {
 for(int x=0; x<10; x++) {
 if(x == 3) {
 //break;
 continue;
 }
 System.out.println(x);
 }
 }
}
 (3)return:返回
 A:用于结束方法的,后面还会在继续讲解和使用。
 B:一旦遇到return,程序就不会在继续往后执行。
/*
 return:返回
 其实它的作用不是结束循环的,而是结束方法的。
*/
class ReturnDemo {
 public static void main(String[] args) {
 for(int x=0; x<10; x++) {
 if(x == 2) {
 System.out.println("退出");
 //break;
 //continue;
 return;
 }
 System.out.println(x);
 }
 System.out.println("over");
 }
}