循环结构
for()循环
语法:
for(表达式1;表达式2;表达式3){
//循环体
}
1.表达式1只执行一次
2.表达式2是个boolean表达式
3.表达式1一般是对循环变量的初始化
4.表达式3一般是对循环变量进行自增或自减操作
5.表达式1可以省略,分号不能省
6.表达式2也可以省略,表示是true
7.表达式3也可以省略
Demo:
import java.util.Scanner;
public class Demo1{
public static void main(String[]args){
//输出0-100
for(int i = 0;i <= 100;i++){
System.out.println(i);
}
System.out.println("-----------------------------------------");
//输出0-100的所有奇数
for(int i = 0;i <= 100;i++){
if((i & 1)==1){
System.out.println(i);
}
}
System.out.println("-----------------------------------------");
/*
for输出
****
****
****
外循环控制行
内循环控制列
*/
for(int i = 0;i <= 3;i++){
for(int j = 0;j <= 4;j++){
System.out.print("*");
}
System.out.println();//只输出一个换行符
}
System.out.println("-----------------------------------------");
/*
*
**
***
****
*/
for(int i = 0;i <= 4;i++){
for(int j = 0;j <= i;j++){
System.out.print("*");
}
System.out.println();
}
System.out.println("-----------------------------------------");
//九九乘法表
for(int i = 1;i <= 9;i++){
for(int j = 1;j <= i;j++){
System.out.print(i+"*"+j+"="+i*j+'\t');
}
System.out.println();
}
System.out.println("-----------------------------------------");
/*
*
***
*****
*******
*********
*/
System.out.println("输入列数");
Scanner in = new Scanner(System.in);
int ln = in.nextInt();
int row = ln;
for(int i = 0;i <= row;i++){
//空格
for(int j = 0;j <=row -1 - i;j++){
System.out.print(" ");
}
/*
用--版本
for(int j = row - 1 - i;j > 0;j --){
System.out.print(" ");
}
*/
//星星
for(int k = 0;k < 2 * i + 1;k++){
System.out.print("*");
}
System.out.println();
}
/*
*******
*****
***
*
*/
for(int i = 0;i < row + 1;i++){
for(int j=0;j < i + 2;j++){
System.out.print(" ");
}
//星星
for(int k = 0;k < 2 * (row - 1) - 1 - 2 * i;k++){
System.out.print("*");
}
System.out.println();
}
}
}
while循环
语法:
while(布尔表达式){
//循环值
}
do{}while()循环
语法:
do{
//循环体
}while(布尔表达式);
Demo:
public class Demo2{
public static void main(String[]args){
int i = 0;
while(i <= 100){
System.out.println(i);
i++;
}
do{
System.out.println(i);
//i++;
}while(i < 100);
for(byte j = 125;j < 128;j++){
System.out.println(j);
} //死循环 i<128永远为true byte最大为127
}
}
总结:
1.如果明确知道循环次数,建议用for
2.如果不明确知道需要循环多少次,建议用while
3.不管如何,循环体的代码至少执行1次时,用do while
while中布尔表达式不能省略