2.4.1循环控制
2.4.1.1while循环
package Java基础03_循环结构;
/*
whlie循环格式:
while(判断条件语句){
循环语句;
}
*/
/*
* 需求:循环打印输出10遍 ”while循环+i“
*/
public class While_Demo {
public static void main(String[] args) {
// TODO Auto-generated method stub
int i =0;
while(i<10) {
System.out.println("while循环"+i+"次");
i++;
}
/*
* 需求:完成1=100的累加
*
*/
int sum = 0;
int x = 1;
while(x<=100) {
sum+=x;
x++;
}
System.out.println(sum);
}
}
2.4.1.2do-while循环
package Java基础03_循环结构;
/*
do-while 循环的格式
do{//先执行一遍循环体结构
循环体语句
}while(判断条件语句);//再去判断
*/
/*
* 面试题:
* while 循环和do-while循环的区别
* while循环先判断条件表达式是否成立,才会执行循环语句体;
* do_while循环,先执行一遍循环体语句,再去判断条件表达式是否成立。
*/
public class Do_While_Demo {
public static void main(String[] args) {
// TODO Auto-generated method stub
int i= 1;
do {
System.out.println("先执行这个do语句体"+i);
i++;
}while(i<10);
/*
* 利用do-while完成1-100的累加
*/
int sum=0;
int x = 1;
do {
sum+=x;
x++;
System.out.println(sum);
}while(x<=100);
System.out.println("最终累加数:"+sum);
}
}
2.4.1.3for循环
for(初始化语句;判断语句;控制语句) {
循环语句体;
}
示例Demo
for(int j=0;j<=10;j++){
System.out.println("循环次数"+j);
}
执行流程:
1:执行初始化语句
2:执行条件判断语句,看其返回值是true还是false
如果是true,就执行循环体语句。
如果是false,就结束循环。
3:执行循环体语句
4:执行控制条件语句
5:回到2步继续执行
package Java基础03_循环结构;
/*
for(初始化语句;判断语句;控制语句) {
循环语句体;
}
示例Demo
for(int j=0;j<=10;j++){
System.out.println("循环次数"+j);
}
*/
public class For_Demo {
public static void main(String[] args) {
// TODO Auto-generated method stub
for(int i=0; i<=10;i++) {
System.out.println("这是For循环"+i+"次");
}
/*
* 需求:1-10的累乘
*/
//方式一:
int x =1;
for(int i=1;i<=10;i++) {
x*=i;
}System.out.println(x);//输出3628800
//需求:求出1-100之间的偶数的和,用for+if
int sum=0;
for(int i =1;i<=100;i++) {
if(i%2==0) {
sum+=i;
}
}
System.out.println(sum);//2550
//方式二:
int sum2=0;
for(int i=0;i<=100;i+=2) {
sum2+=i;
}
System.out.println(sum2);
/*
* 水仙花数:
* 水仙花数(Narcissistic)也被称为超完全数字不变数自恋数,自幂数、阿姆斯壮数或阿 姆斯特朗数
*
* 水仙花数是指一个3位数,他的每一个位上的数字的3次幂之和等于他本身(例如:1^3+5^3+3^3=153)
*
* 在控制台输出100-1000的水仙花数
* 153=1*1*1+*3*3*3+5*5*5
* 问题来了:我怎么获得这个十位数,百位,个位数呢?
*
* 个位:135%10=3
* 十位:153/10%10=5
* 百位:135/100=1
*/
System.out.println("---------------------------------");
int count =0;
for(int i=100;i<1000;i++) {
int ge=i%10;
int shi =i/10%10;
int bai = i/100;
if(i==(ge*ge*ge+shi*shi*shi+bai*bai*bai)) {
System.out.println(i);
count++;
}
}
System.out.println(count);
}
}
while循环和for循环的区别:
使用区别:如果你想在循环结束后,继续使用控制条件的那个变量,就用while ,否则用for循环。
2.4.1.4双重循环
双重循环:一定要明白哪个循环先执行,哪个先结束,哪个循环再执行。
package Java基础03_循环结构;
/*
* 双重循环:
* 需求:
* 请输入一个4行5列的星星(*)图案,利用for循环。
* 效果图:
* *****
* *****
* *****
* *****
*/
public class ForForDemo {
public static void main(String[] args) {
// TODO Auto-generated method stub
//一定要明白哪个循环先执行,哪个先结束,哪个循环再执行
for(int i =0;i<4;i++) {
for(int j = 0;j<5;j++) {
System.out.print("*");
}
System.out.println();
}
/*
* 需求:请输入下列形状:
* *
* **
* ***
* ****
* *****
*/
for(int i=0;i<=5;i++) {
for(int j=0;j<i;j++) {
System.out.print("*");
}
System.out.println();
}
/*
* 利用for循环打印九九乘法表
*/
for(int i = 1;i<=9;i++) {
for(int j=1;j<=i;j++) {
System.out.print(j+"*"+i+"="+i*j+"\t");
}
System.out.println();
}
}
}