循环结构
While循环
-
格式:
while(循环条件){
循环体语句(被重复执行的代码);
迭代语句;
}
public class WhileDemo1 {
public static void main(String[] args) {
//输出1~5
int i =0;
while(i<5){
i++;
System.out.println(i);
}
}
}
-
只要循环条件一直为true,循环体语句就会一直被执行下去。
-
我们大多数情况是会让循环停止下来的,我们需要一个让表达式失效的方式来结束循环
-
少部分循环需要循环一直执行下去,比如服务器的请求响应监听
-
计算1+2+3+……+100的和
public class DoWhileDemo1 {
public static void main(String[] args) {
//计算1~100中所有数字相加的和
int i= 0;
int sum = 0;
while(i<=100){
sum = sum +i;
i++;
}
System.out.println(sum);//5050
}
}
-
先判断后执行
-
知道循环几次用for循环,不知道循环几次用while循环
DoWhile循环
-
先执行后判断
-
格式:
初始化语句;
do{
循环体语句;
迭代语句;
}while(循环条件);
-
特点:一定先执行一遍循环体
public class DoWhileDemo1 {
public static void main(String[] args) {
//计算1~100中所有数字相加的和
//高斯的故事
int i= 0;
int sum = 0;
do{
sum = sum +i;
i++;
}while(i<=100);
System.out.println(sum);//5050
}
}
for循环
-
格式:
for(初始化语句;循环条件;迭代语句)
{
循环体语句;
}
-
先判断后执行
-
public class ForDemo1 {
public static void main(String[] args) {
int a = 1;
while(a<=10){
System.out.println(a);
a +=2;
}System.out.println("while循环结束");
for(int i=1; i<=10; i++){
System.out.println(i);
}
/**
关于for循环有以下几点说明:
最先执行初始化步骤,可以声明一种类型,但可以初始化一个或多个循环控制变量,也可以是空语句,
然后,检测循环条件的值,如果为true,循环体被执行,如果为false,循环体结束运行,开始执行循环体后面的语句,
再一次循环后,更新循环控制变量(迭代因子控制循环变量的增减)
再次检测循环条件,循环执行上面的过程
*/
}
} -
举例
public class ForDemo2 {
public static void main(String[] args) {
//0~100之间的奇数和偶数的和
int oddsum = 0;//偶数初始变量
int evensum = 0;//奇数初始变量
for(int i=0;i<100;i++){
if(i%2!=0){
evensum+=i;//奇数
}else{
oddsum+=i;//偶数
}
}
System.out.println("奇数的和为:"+evensum);//奇数的和为:2500
System.out.println("偶数的和为:"+oddsum);//偶数的和为:2450
}
}public class ForDemo3 {
public static void main(String[] args) {
//用while或for循环输出1~1000之间能被5整除的数,并每输出三个数就换行
for(int i=0;i<=1000;i++){
if(i%5==0){ //对5取余数
System.out.print(i+"\t");
if(i%(5*3)==0){ //三个数换行,对15取余数
System.out.println(); //换行
}
}
}
}
}
public class ForDemo4 {
public static void main(String[] args) {
//打印九九乘法表
/**
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*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
*/
//1.先打出第一列
//2.我们把第一列在用一个for循环包起来
//3.去掉重复项
//4.调整样式
for(int j=1;j<10;j++){
for(int i=1;i<=j;i++){
System.out.print(i+"*"+j+"="+(i*j)+"\t");
}
System.out.println();
}
}
}
增强for循环
1.格式:
for( 声明语句: 表达式){
//代码句子
}
public class ForDemo5 {
public static void main(String[] args) {
int[] num = {10,20,30,40,50};
for(int x : num){
System.out.println(x);
}System.out.println("=============");
for(int i=0;i<5;i++){
System.out.println(num[i]);
}
}
}
-
java5引入了一种主要用于数组和集合的for循环
-
声明语句:声明新的局部变量,并要求该的变量的类型要与数组的类型一直,其作用域限定在循环语句块,此值与数组元素的值相等
-
表达式:是要访问的数组名,或者是要返回数组的方法
例题:
public class TestDemo1 {标签:int,System,循环,println,结构,public,out From: https://www.cnblogs.com/20030429wym/p/16722801.html
public static void main(String[] args) {
//打印三角形 5行
for(int i = 1; i <= 5; i++) {
for(int j = 5; j >=i;j--){
System.out.print(" ");
}for(int j = 1; j <=i;j++){
System.out.print("*");
}for(int j = 1; j <i;j++){
System.out.print("*");
}
System.out.println();
}
}
}
*
***
*****
*******
*********