Java流程控制(二)
循环结构
-
while循环
public static void main(String[] args) { int i=0; while(i<100){ i++; System.out.println(i); }
思考:计算1+2+3+。。。+100=?
public static void main(String[] args) { int i=0; int sum=0; while(i<=100){ sum=sum+i; i++; } System.out.println(sum); }
循环条件一直为true就会造成死循环,少部分情况循环会一直执行,比如服务器请求响应监听!!
-
dowhile循环
和while循环的区别 他至少会被执行一次
public static void main(String[] args) { int a=0; while (a<0){ a++; System.out.println(a); } System.out.println("========="); do { a++; System.out.println(a); }while (a<0); } }
For循环***
与while的区别
public static void main(String[] args) { int a=1;//初始化条件 while(a<=100){//条件判断 System.out.println(a);//循环体 a+=2;//迭代 } System.out.println("while结束"); //========================================= for (int i=1;i<=100;i++){ System.out.println(i); } System.out.println("for结束"); }
练习1
计算0-100之间奇数和偶数的和
public static void main(String[] args) { int oddSum=0; int EvenSum=0; for (int i = 0; i < 100; i++) { if (i % 2 != 0) { oddSum += i; } else { EvenSum += i; } } System.out.println(oddSum); System.out.println(EvenSum); }
练习2
while或者for循环输出1-1000之间能被5整除的数,并且每行输出3个
public static void main(String[] args) { for (int i = 0; i <= 1000; i++) { if(i%5==0){ System.out.print(i+"\t"); }if (i%(5*3)==0){ System.out.print("\n"); System.out.println(); } } }
print不换行
println自动换行
练习3
打印九九乘法表
public static void main(String[] args) { //1.打印第一列 //2.把固定的1用循环包起来 //3.去掉重复,i<=j; //4.调整样式 for (int j = 0; j <= 9; j++) { for (int i = 1; i <= j; i++) { System.out.print(j+"*"+i+"="+(j*i)+"\t"); } System.out.println(); } }
增强for循环
主要用于数组和集合
与for循环的区别
public static void main(String[] args) { int[] numbers={10,20,30,40}; for (int i=0;i<4;i++){ System.out.println(numbers[i]); } //======================= for (int x:numbers){ System.out.println(x); } } }
break;continue
关于continue
public static void main(String[] args) { int i=0; while(i<100){ i++; if (i%10==0){ System.out.println(); continue; } System.out.println(i); } }
-
break;强行退出循环,不执行剩余的语句。
-
Continue;这一次不执行了直接跳到下一次的判断。
goto关键字
就是带标签的continue
public static void main(String[] args) { int count=0; outer:for (int i=101;i<150;i++){ for (int j=2;j<i/2;j++){ if (i%j==0){ continue outer; } } System.out.println(i); } }
练习
打印三角形 Debug真好用!
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(); }