Java中循环控制语句的总结及代码练习
本文主要是对循环控制语句的总结:
1. 总体知识结构
总体知识结构梳理图
2. If语句
If语句知识梳理图
相关代码练习:
⑴、
ackage cn.itcast_if;
/*
* 需求:获取三个数据中的最大值
*
* 分析:此案例主要是为了复习if语句的嵌套使用,而且可以任意嵌套。
*/
public
class IfDemo01 {
public
static
void main(String[] args) {
// 随便定义三个int类型数据
int
a = 22;
int
b = 9;
int
c = 18;
// 通过if语句实现:
// 先定义一个int类型max用于接收最大值
int
max;
if (a > b) {
if (a > c) {
max = a;
} else {
if (b > c) {
max = b;
} else {
max = c;
}
}
System.out.println(“这三个数中最大值为:“ + max);
}
}
}
3. Switch语句
Switch语句知识梳理图
相关代码练习:
⑴、
package cn.itcast_switch;
//导包
import java.util.Scanner;
/*
* 需求:用switch语句实现键盘录入月份,输出对应的季节
*
* 分析:
A:键盘录入一个月份,用Scanner实现
B:用switch语句实现即可
*/
public
class SwitchDemo {
public
static
void main(String[] args) {
// 创建键盘录入对象
Scanner sc = new Scanner(System.in);
// 录入数据
System.out.println(“请输入月份(1-12):“);
int
month = sc.nextInt();
// switch语句判断
// 此处用到了case的穿透
switch (month) {
case 1:
case 2:
case 12:
System.out.println(“冬季“);
break;
case 3:
case 4:
case 5:
System.out.println(“春季“);
break;
case 6:
case 7:
case 8:
System.out.println(“夏季“);
break;
case 9:
case 10:
case 11:
System.out.println(“秋季“);
break;
default:
System.out.println(“你输入的月份有误“);
}
}
}
4. For循环
For循环知识梳理图
相关代码练习:
⑴、
package cn.itcast_for;
/*
需求:统计“水仙花数“共有多少个
分析:
A:首先必须知道什么是水仙花数
所谓的水仙花数是指一个三位数,其各位数字的立方和等于该数本身。
举例:153就是一个水仙花数。
153 = 1*1*1 + 5*5*5 + 3*3*3 = 1 + 125 + 27 = 153
B:定义统计变量,初始化值是0
C:三位数告诉了我们范围,用for循环就可以搞定
D:获取每一个三位数的个,十,百的数据
E:按照要求进行判断
F:如果满足要求就计数。
*/
public
class ForDemo01 {
public
static
void main(String[] args) {
// 定义统计变量,初始化值是0
int
count = 0;
// 三位数告诉了我们范围,用for循环
for (int
i = 100; i < 1000; i++) {
// 获取一个三位数的个、十、百的数据
int
ge = i % 10;
int
shi = i / 10 % 10;
int
bai = i / 10 / 10 % 10;//注意此处,一开始是除(\),最后才是模(%)
// 按照要求进行判断
if (i == (ge * ge * ge + shi * shi * shi + bai * bai * bai)) {
count++;
System.out.println(i);
}
// System.out.println(“水仙花数总的个数为:” + count);
}
}
}
⑵、
package cn.itcast_switch;
/*
需求:请统计1-1000之间同时满足如下条件的数据有多少个:
对3整除余2
对5整除余3
对7整除余2
分析:
A:定义统计变量,初始化值是0
B:1-1000之间是一个范围,用for很容易就可以实现。
C:每个数据要同时满足如下要求
x%3==2
x%5==3
x%7==2
D:如果满足条件,统计数据++即可,最后输出统计变量
*/
class ForDemo9 {
public
static
void main(String[] args) {
// 定义统计变量,初始化值是0
int
count = 0;
// 1-1000之间是一个范围,用for很容易就可以实现。
for (int
x = 1; x <= 1000; x++) {
/*
* 每个数据要同时满足如下要求 x%3==2 x%5==3 x%7==2
*/
if (x % 3 == 2 && x % 5 == 3 && x % 7 == 2) {
count++;
System.out.println(x);
}
}
// 输出数据
System.out.println(“满足这样条件的数据共有:“ + count + “个“);
}
}
5.While . do循环
While . do循环知识梳理图
相关代码练习:
⑴、
package cn.itcast_while;
/*
我国最高山峰是珠穆朗玛峰:8848m,我现在有一张足够大的纸张,厚度为:0.01m。
请问,我折叠多少次,就可以保证厚度不低于珠穆朗玛峰的高度?
分析:
A:定义一个统计变量,默认值是0
B:最高山峰是珠穆朗玛峰:8848m这是最终的厚度
我现在有一张足够大的纸张,厚度为:0.01m这是初始厚度
C:我折叠多少次,就可以保证厚度不低于珠穆朗玛峰的高度?
折叠一次有什么变化呢?就是厚度是以前的2倍。
D:只要每次变化的厚度没有超过珠穆朗玛峰的高度,就折叠,统计变量++
E:输出统计变量。
*/
class WhileDemo5 {
public
static
void main(String[] args) {
// 定义一个统计变量,默认值是0
int
count = 0;
// 最高山峰是珠穆朗玛峰:8848m这是最终的厚度
// 我现在有一张足够大的纸张,厚度为:0.01m这是初始厚度
// 为了简单,我把0.01变成1,同理8848就变成了884800
int
end = 884800;
int
start = 1;
while (start < end) {
// 只要每次变化的厚度没有超过珠穆朗玛峰的高度,就折叠,统计变量++
count++;
// 折叠一次有什么变化呢?就是厚度是以前的2倍。
start *= 2;
System.out.println(“第“ + count + “次厚度是“ + start);
}
// 输出统计变量。
System.out.println(“要叠“ + count + “次“);
}
}
6. do…While 循环
do…While 循环知识梳理图
7.循环语句区别
循环语句区别知识梳理图
相关代码练习:
⑴、
package cn.itcast_区别;
/*
while循环和for循环的区别?
使用区别:如果你想在循环结束后,继续使用控制条件的那个变量,用while循环,
否则用for循环。不知道用for循环。因为变量及早的从内存中消失,可以提高内存的使用效率。
其实还有一种场景的理解:
如果是一个范围的,用for循环非常明确。
如果是不明确要做多少次,用while循环较为合适。
*/
class
Demo01 {
public
static
void main(String[] args) {
//for循环实现
for(int
x=0; x<10; x++) {
System.out.println(“学习Java技术哪家强,中国北京传智播客“);
}
//这里不能在继续访问了
//System.out.println(x);
//while循环实现
int
y = 0;
while(y<10) {
System.out.println(“学习Java技术哪家强,中国北京传智播客“);
y++;
}
//这里是可以继续访问的
System.out.println(y);
}
}
⑵、
package cn.itcast_区别;
/*
循环语句的区别:
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(“我爱java”);
x++;
}
System.out.println(“————–“);
int
y = 3;
do {
System.out.println(“我爱java”);
y++;
} while (y < 3);
}
}
7.循环嵌套
代码练习:
package cn.itcast_forfor;
/*
需求:在控制台输出九九乘法表。
首先我们写出九九乘法表:
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 ForForDemo {
public
static
void main(String[] args) {
// 为了使用数据,我们从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();
}
}
}
打印效果图
8. 控制跳转语句
控制跳转语句知识梳理图
相关代码练习:
⑴、
package cn.itcast_01;
/*
控制跳转语句:
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();
}
}
}
⑵、
package cn.itcast_01;
/*
continue:继续
使用场景:
循环中。离开此场景无意义。
测试,找到和break的区别:
break:跳出单层循环
continue:跳出一次循环,进入下一次的执行
*/
class ContinueDemo {
public
static
void main(String[] args) {
for (int
x = 0; x < 10; x++) {
if (x == 3) {
// break;
continue;
}
System.out.println(x);
}
}
}
⑶、
package cn.itcast_01;
/*
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”);
}
}
2016.07.24