循环语句分为:while,do while,for 为什么要使用循环语句呢?我们要执行大量的重复的逻辑代码时,它的作用就体现出来了!不然每一遍都要写一遍那就费老鼻子劲了.
1、while
语法:
while(条件表达式){
//语句块;
}
符合条件,循环继续执行;否则,循环退出
特点:先判断,再执行
1、计算1-100之间所有整数之和。5050
public static void main(String[] args){
int num=0;//用于计算总数
int i=1;//增量
while(i<=100){
num+=i;
i++;
}
System.out.println(num);
}
2、计算10的阶乘 把+改成* 条件改成<=10就可以了
3、打印100以内所有的奇数,偶数和3的倍数(不包括100)
public static void main(String[] args){
int i=1;//增量
int num=1;
while(i<100){
if(i%2==0){
System.out.println("偶数:"+i);
}else{
System.out.println("奇数:"+i);
}
if(i%3==0){
System.out.println("3的倍数:"+i);
}
i++;
}
}
2、dowhile
语法
do {
//循环操作
}while ( 循环条件 );
先执行一遍循环操作,符合条件,循环继续执行;否则,循环退出
特点:先执行,再判断 这样呢do while会至少循环一次,而while可以一次都不执行
1、逆序输出10~0
public static void main(String[] args){
int i=10;
do{
//循环体
System.out.println(i);
i--;
}while(i>=0);//循环条件
}
2、Java阶乘求和 1!+2!+...+10!
//阶乘求和
public static void main(String[] args){
int i=1;
int num=0;//记录总和
do{
int j=1;
int jcnum=1;
while(j<=i){
jcnum*=j;
j++;
}
num+=jcnum;
i++;
}while(i<=10);//循环条件
System.out.println(num);
}
3、for循环
语法:
for(初始化参数;判断条件 ;更新循环变量){
// 循环体;
}
关键字:continue 表示跳过当次循环,继续下次循环。
For循环的六种写法:
1、标准写法
public static void main(String[] args){
for(int i=0;i<10;i++){
if(i==5){
continue;//跳过当次循环进入下次循环
}
//循环体
System.out.println(i);
}
}
//第一步 执行声明int i=0;只执行一次
//第二步 判断 i<10是否成立,如果成立,执行第三步,不成立跳出循环
//第三步 执行循环体
//第四步 执行i++;
//第五步 判断i<10;如果成立 执行第三步 不成立跳出循环,
2、表达式1省略,但在外部声明
public static void main(String[] args){
int i=0;//在外部声明
for(;i<10;i++){//注意分号不能省略
System.out.println(i);
}
}
3、表达式2省略,死循环,避免这种写法
public static void main(String[] args){
for(int i=0;;i++){
System.out.println(i);
}
}
4、表达式3省略,但是要声明在循环内部
public static void main(String[] args){
for(int i=0;i<10;){
System.out.println(i);
i++;//表达式三
}
}
5、表达式1,3省略,但是要声明在循环的外部和内部
public static void main(String[] args){
int i=0
for(;i<10;){
System.out.println(i);
i++;
}
}
6、三个表达式都省略,死循环
public static void main(String[] args){
int i=0
for(;;){
System.out.println(i);
i++;
}
}
1、打印输出0~200之间能被7整除但不能被4整除的所有整数;
public static void main(String[] args){
for(int i=0;i<200;i++){
if(i%7==0&&i%4!=0){
System.out.println(i);
}
}
}
2、输出10个斐波那契(Fibonacci)数列:1 1 2 3 5 8 13 21 34 55。(特点:第1,2两个数值为1,从第三个数开始,该数是其前面两个数之和)
public static void main(String[] args){
int n1=1;
int n2=1;
int next=0;
System.out.print(n1+" "+n2+" ");
for(int i=0;i<8;i++){
next=n1+n2;
System.out.print(next+" ");
n1=n2;
n2=next;
}
}
4、多重循环
上边有一个嵌套了,循环嵌套在工作中用的也是非常的多,也不用嵌套很多,常用的也就嵌套两到三层,如果太多了,可能就是你的程序的逻辑有问题。
多重循环指的是循环之间相互嵌套,被嵌套的称为内循环,嵌套内循环的称为外循环,循环可以多重循环。
下面来代码实操:
1、打印直角三角形*

思路分析: 把它想象成矩阵 先用外循环控制行数,内循环控制列数
public static void main(String[] args){
//外循环控制行数
for(int i=1;i<6;i++){
//i和每一行的星星个数是有关系的i=当前行星星的个数
for(int j=1;j<=i;j++){
System.out.print("*");
}
System.out.println();
}
}
2、打印九九乘法表

public static void main(String[] args){
//外循环控制行数
for(int i=1;i<9;i++){
for(int j=1;j<=i;j++){
//输出的正好是列数*行数
System.out.print(j+"*"+i+"="+(j*i)+"\t");
}
System.out.println();
}
}
3、打印直角三角形2

public static void main(String[] args){
//外循环控制行数
for(int i=1;i<5;i++){
//第一题输出只输出* 而这道题输出空格和* 每一行都输出五个东西
for(int j=5;j>0;j--){
if(j<=i)
System.out.print("*");
else
System.out.print(" ");
}
System.out.println();
}
}
4、打印等腰三角形

public static void main(String[] args){
//外循环控制行数
for(int i=1;i<5;i++){
//内循环输出空格
for(int j=i;j<5;j++){
System.out.print(" ");
}
//内循环输出*
for(int j=1;j<=i*2-1;j++){
System.out.print("*");
}
System.out.println();
}
}
System.out.println("点个赞吧!");
