循环控制练习
前面我们已经说过了,Java中的goto是保留字,目前不能使用。
虽然没有goto语句可以增强程序的安全性,但是也带来很多不便,
比如说,我想在某个循环知道到某一步的时候就结束,现在就做不了这件事情。
为了弥补这个缺陷,
Java就提供了break,continue和return来实现控制语句的跳转和中断。
break,continue,return 它们都是关键字
break: 中断,结束的意思
break的使用场景:
根据单独使用的时候报错信息我们得出,break语句是适用于switch语句和循环语句中
1、在switch语句中使用
2、在循环语句中使用
3、单独在if语句中不能使用
import java.util.Scanner;
public class ControlDemo1 {
public static void main(String[] args) {
//单独使用是没有任何意义的
// break;
//需求1:输入1-7,输出对应的星期
//创建键盘录入对象
Scanner sc = new Scanner(System.in);
boolean flag = true;
while (flag) {
System.out.println("请输入您想知道星期几的数字:(1-7)");
int num = sc.nextInt();
switch (num) {
case 1:
System.out.println("星期一");
break;
case 2:
System.out.println("星期二");
break;
case 3:
System.out.println("星期三");
break;
case 4:
System.out.println("星期四");
break;
case 5:
System.out.println("星期五");
break;
case 6:
System.out.println("星期六");
break;
case 7:
System.out.println("星期日");
break;
case 0:
flag = false;
System.out.println("欢迎下次使用");
break;
default:
System.out.println("您输入的数据有误,请重新输入");
break;
}
}
System.out.println("=======================");
//需求2:循环打印1-10,加入break,让它在打印3的时候,结束for循环
for(int i=1;i<=10;i++){
System.out.println(i);
//当打印3的时候,结束for循环
if(i==3){
break;
}
}
// int a = 10;
// if(a==10){
// break;
// }
}
}
报错修改快捷键:将鼠标光标移动至报错的横线上,按下alt+enter
需求:
九九乘法表,在内循环j是4的时候,我们break一下
注意事项:
单层跳出:在当前for循环中使用break,只结束当前for循环
多层跳出:带标签的break,格式:标签名 : 循环语句(开发中如果没有特殊需求,一般不会去使用)
public class ControlDemo2 {
public static void main(String[] args) {
System.out.println("========九九乘法表===========");
// for(int i=1;i<=9;i++){
// for(int j = 1;j<=i-1;j++){
// System.out.print("\t");
// System.out.print("\t");
// }
//
// for(int j=i;j==i;j++){
// System.out.print(j+"*"+i+"="+(i*j)+"\t");
// }
// System.out.println();
// }
//在内循环j是4的时候,我们break一下
xiaomi : for(int i=1;i<=9;i++){ //外层控制行
xiaoyun : for(int j=1;j<=i;j++){ //内层控制列
System.out.print(j+"*"+i+"="+(i*j)+"\t");
if(j==4){
break xiaomi; //结束当前循环
}
}
System.out.println();
}
}
}
continue: 跳出当次循环
使用场景:
1、在循环语句中
2、离开使用场景的存在是没有意义的
return: 返回,退还
在main方法中使用,就相当于结束了main方法,也就是结束当前java程序
public class ControlDemo3 {
public static void main(String[] args) {
//单独使用报错,根据报错信息我们发现,continue只能在循环中使用
// continue;
//需求:打印1-10,加入continue关键字,在打印3的时候加入
System.out.println("=====加continue==============");
for(int i=1;i<=10;i++){
if(i==3){
continue;
}
System.out.println(i);
}
System.out.println("=====加break==============");
for(int i=1;i<=10;i++){
if(i==3){
break;
}
System.out.println(i);
}
System.out.println("=====加入return===============");
for(int i=1;i<=10;i++){
if(i==3){
return;
}
System.out.println(i);
}
//可以单独使用
// return;
System.out.println("你好呀 大家");
}
}
小芳的妈妈每天给她2.5元钱,她都会存起来,但是,
每当这一天是存钱的第5天或者5的倍数的话,她都会花去6元钱,
请问,经过多少天,小芳才可以存到100元钱。
分析
1、由于存钱是每天都会发生的事,所以我们考虑循环
我们学过的循环有for循环和while循环
这里由于不知道存多少天,我们推荐使用while循环
2、存的钱的总额
统计天数
public class ControlTest {
public static void main(String[] args) {
//定义两个变量分别代表金额和天数
double money = 0;
int day = 0;
while (money <= 100) {
day = day + 1;
money = money + 2.5;
//当day是5或者是5的倍数的时候,money-6
if (day % 5 == 0) {
money = money - 6;
}
System.out.println("第" + day + "天,已经存到了" + money + "元");
}
System.out.println("=================================");
System.out.println("第" + day + "天的时候,存到了" + money + "元");
}
}
需求1:请输出一个4行5列的星星(*)图案
* * * * *
* * * * *
* * * * *
* * * * *
需求2: 用循环实现打印如下三角形的*图案
*
* *
* * *
* * * *
* * * * *
public class ForNestDemo {
public static void main(String[] args) {
//输出一个*
// System.out.println("*");
//输出5个*
// System.out.println("*");
// System.out.println("*");
// System.out.println("*");
// System.out.println("*");
// System.out.println("*");
//使用java的输出语句另外一种格式,将5个*输出在一行
// System.out.print("*\t");
// System.out.print("*\t");
// System.out.print("*\t");
// System.out.print("*\t");
// System.out.print("*\t");
//for循环改进打印一行
// for(int i=1;i<=5;i++){
// System.out.print("*\t");
// }
// System.out.println();
//
// for(int i=1;i<=5;i++){
// System.out.print("*\t");
// }
// System.out.println();
//
// for(int i=1;i<=5;i++){
// System.out.print("*\t");
// }
// System.out.println();
//
// for(int i=1;i<=5;i++){
// System.out.print("*\t");
// }
// System.out.println();
//用for循环改进打印4行5列的*
for (int i = 1; i <= 4; i++) { // 外层的for循环控制的是行
for (int j = 1; j <= 5; j++) {//内层的for循环控制的是列
System.out.print("*\t");
}
System.out.println();
}
System.out.println("===========需求2====================");
/**
*
*
* *
* * *
* * * *
* * * * *
* * * * * *
*
* 分析:
* 1、总共有5行5列,我们可以先打印5行5列
* * * * * *
* * * * * *
* * * * * *
* * * * * *
* * * * * *
*
* 2、
*
* * 第一行1个星,i=1,j=1
* * * 第二行2个星,i=2,j=2
* * * * 第三行3个星,i=3,j=3
* * * * * 第四行4个星,i=4,j=4
* * * * * * 第五行5个星,i=5,j=5
*
*
*/
for (int i = 1; i <= 5; i++) {
for (int j = 1; j <= 5; j++) {
System.out.print("*\t");
}
System.out.println();
}
System.out.println("==================================");
for (int i = 1; i <= 5; i++) {
for (int j = 1; j <= i; j++) {
System.out.print("*\t");
}
System.out.println();
}
System.out.println("===========打印9行9列的*三角型===========");
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= i; j++) {
System.out.print("*\t");
}
System.out.println();
}
System.out.println("===========打印九九乘法表===========");
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= i; j++) {
//1*1=1 1*2=2
System.out.print(j + "*" + i + "=" + (i * j) + "\t");
}
System.out.println();
}
}
}
本文介绍了Java中用于循环控制的关键字break, continue和return的使用。通过示例展示了它们在switch语句、循环中的功能,如在九九乘法表、循环打印图案等场景中的应用。同时,文章还分析了一个经济问题,模拟了小芳存钱的过程,演示了如何在满足特定条件时调整循环行为。

被折叠的 条评论
为什么被折叠?



