一个循环可以执行多少次,不由开始值与结束值控制,而是由控制循环的循环变量可以取的值控制。

for循环

基础语法

  1. for(开始条件;循环条件;更改条件){
  2. 循环体;
  3. }

嵌套for循环

  1. for(){//外层循环
  2. for(){
  3. //内层循环
  4. }
  5. }

外层循环执行一轮,内层循环执行n次,外层循环为轮数,内层循环是每一轮的次数

99乘法表

  1. package cn.tedu.basic;
  2. public class TestFor99Excel {
  3. public static void main(String[] args) {
  4. for(int i = 1;i < 10;i++) {
  5. for(int j = 1;j <= i;j++) {
  6. System.out.print(j + "*" + i + "=" + i*j + "\t");
  7. }
  8. System.out.println();
  9. }
  10. }
  11. }

for循环案例

打印0到10/打印10到0/打印8,88,888,8888,

  1. package cn.tedu.basic;
  2. public class TestFor {
  3. public static void main(String[] args) {
  4. for(int i=0 ; i <= 10 ; i++) {
  5. System.out.print(i + " ");
  6. }
  7. System.out.println();
  8. for(int a = 10 ; a > 0 ; a--) {
  9. System.out.print(a + " ");
  10. }
  11. System.out.println();
  12. for(int j = 8 ; j <= 8888 ; j = j*10+8) {
  13. System.out.print(j + ",");
  14. }
  15. }
  16. }

求[1,100]以内元素之和,偶数之和,偶数个数

  1. package cn.tedu.basic;
  2. public class TestHomework {
  3. public static void main(String[] args) {
  4. //1-100元素和
  5. int sum = 0;
  6. for(int i = 1 ; i <= 100 ; i++) {
  7. sum += i;
  8. }
  9. System.out.println("1-100元素和为:" + sum);
  10. //1-100偶数和
  11. int sum1 = 0;
  12. for(int j = 1 ; j < 101 ; j++) {
  13. if(j % 2 ==0) {
  14. sum1 += j;
  15. }
  16. }
  17. System.out.println("1-100的偶数和为:" + sum1);
  18. //1-100的偶数个数
  19. int num = 0;
  20. for(int k = 1 ; k<101 ; k++) {
  21. if(k % 2 ==0) {
  22. num++;
  23. }
  24. }
  25. System.out.println("1-100的偶数个数为:" + num);
  26. }
  27. }

while与do ··· while循环

语法结构

while的语法结构

  1. while(执行条件){
  2. 循环体;
  3. }

do ··· while语法结构

  1. do{
  2. 循环体;
  3. }while(执行条件);

案例

猜拳小游戏while循环

  1. package cn.tedu.basic;
  2. import java.util.Random;
  3. import java.util.Scanner;
  4. /**
  5. *用于练习while循环
  6. *生成一个随机数,让用户去猜
  7. */
  8. public class TestWhile {
  9. public static void main(String[] args) {
  10. int random = new Random().nextInt(101);
  11. while(true) {
  12. System.out.print("请输入你要猜的数:");
  13. int num = new Scanner(System.in).nextInt();
  14. if(num == random) {
  15. System.out.println("恭喜你!猜对了。");
  16. break;
  17. }else if(num >= random) {
  18. System.out.println("猜大了");
  19. continue;
  20. }else if(num <= random) {
  21. System.out.println("猜小了");
  22. continue;
  23. }
  24. }
  25. }
  26. }

猜拳小游戏do-while循环

  1. package cn.tedu.basic;
  2. import java.util.Random;
  3. import java.util.Scanner;
  4. /**
  5. * do-while结构练习
  6. */
  7. public class TestDoWhile {
  8. public static void main(String[] args) {
  9. int random = new Random().nextInt(101);
  10. do {
  11. System.out.print("请输入要猜的数字:");
  12. int input = new Scanner(System.in).nextInt();
  13. if(input > random) {
  14. System.out.println("猜大了。");
  15. continue;
  16. }else if(input < random) {
  17. System.out.println("猜小了。");
  18. continue;
  19. }else if(input == random){
  20. System.out.println("猜对了!");
  21. break;
  22. }
  23. }while(true);
  24. }
  25. }

break与continue

break

break: 直接结束当前循环,跳出循环体
break以后的循环体中的语句不会继续执行,循环体外的会执行
注意:如果是嵌套for循环,在内层循环遇到了break,只会跳出当前这一层内循环

continue

continue: 跳出本轮循环,继续下一轮循环
continue后本轮循环体中的语句不会继续执行,但是会继续执行下轮循环,循环体外的也会执行

案例

  1. package cn.tedu.basic;
  2. import java.util.Scanner;
  3. /**
  4. * 测试break与continue
  5. */
  6. public class TestBreakAndContinue {
  7. public static void main(String[] args) {
  8. for(int i = 1;i < 101;i++) {
  9. System.out.print("请输入您要猜的整数:");
  10. int input = new Scanner(System.in).nextInt();
  11. if(input != 88) {
  12. continue;
  13. }
  14. /*
  15. * continue并不是用来控制多次输入的,而是控制当输入的数据不对,可以跳过后面的判断语句,直接进行下一轮的输入要求
  16. * break与 continue之后都不允许写代码,都是不可到达的代码
  17. */
  18. if(input == 88) {
  19. System.out.println("恭喜你,猜对了");
  20. break;
  21. }
  22. }
  23. }
  24. }

三种循环的区别

  1. for:知道循环次数
  2. while/do while:当循环次数不确定时
  3. while:先判断,不符合规则,不执行代码
  4. do while:代码最少被执行一次,再去判断,符合规则,再次执行代码
  5. 循环之间都可以互相替代,但是一般最好选择合适的循环结构完成代码