JavaSE之循环结构

Java中提供了3中循环结构

while循环
do...while循环
for循环

do{}while(); : do..while至少执行一次

public class DoWhileDemo1 {
    public static void main(String[] args) {
//      int i = 10; 
//      while(){}
//      while(i < 5) {
//          System.out.println("hello1");
//          i++;
//      }
        
//      do{}while(); : do..while至少执行一次
//      int j = 10;
//      do {
//          System.out.println("hello2");
//          j++;
//      }while(j < 5);
        
//      for(循环变量初始化;循环条件;循环变量步长)
//      1.循环变量初始化
//      2.判断是否满足循环条件
//      3.执行循环体
//      4.循环变量增加或减少
//      5.在回到第二步,如此往复
        for(int i = 0;i < 5;i++) {
            System.out.println("hello");
        }
    }
}

break和continue的使用

public class Demo4 {
    public static void main(String[] args) {
        // break的使用
        while(true) {
            Scanner scan = new Scanner(System.in);
            System.out.println("请输入选项:");
            System.out.println("1-------登录");
            System.out.println("2-------注册");
            System.out.println("3-----退出程序");
            int option = scan.nextInt();
            if(option < 0 || option > 3) {
                System.out.println("无效选项");
            }else {
                if(option == 1) {
                    System.out.println("登录成功");
                }else if(option == 2) {
                    System.out.println("注册成功");
                }else {
                    System.out.println("退出成功");
                    break;
                }
            }
        }
        System.out.println("欢迎下次再来!!!!");
    }
}
public class HomeWork_OP5 {
    public static void main(String[] args) {
        // 输出0-9之间的数,但是不包括5
        int i = 0;
//      while(i < 10) {
//          if(i != 5) {
//              System.out.print(i);
//          }
//          i++;
//      }
        
        while(i < 10) {
            if(i == 5) {
                i++;
//              跳过本次循环
                continue;
            }
            System.out.print(i);
            i++;
        }
    }
}

额外知识点

Debug调试

public class DebugDemo {
    public static void main(String[] args) {
        // 双击加断点,右键-->Debug as-->F6
        int num = 100;
        if(num < 50) {
            num++;
        }
        System.out.println(num);
    }
}

Scanner的使用问题

public class ScannerProblemDemo {
    public static void main(String[] args) {
        // 特殊情况:第一次获取的是数字,第二次获取是字符串
        Scanner scan = new Scanner(System.in);
        System.out.println("请输入一个数字1");
        int num1 = scan.nextInt();
        System.out.println("请输入一个字符串2");
        scan.nextLine();
        String str2 = scan.nextLine();
        System.out.println(num1+","+str2);
        /*
         * 在控制台输入的所有数据都会进入内存
         * int num1 = scan.nextInt(); 
         * num1会将内存中的数据取走,但内存中还保留了一个enter
         * String str2 = scan.nextLine();str2直接就把上次留下的enter取走了
         * 所以没有给我们输入字符串的机会
         * 解决方式:先用scan.nextLine();把上次留下的enter取走
         */
    }
}

随机数

public class RandomDemo {
    public static void main(String[] args) {
        // 产生随机数
        double num1 = Math.random();//[0,1)
//      Scanner scan = new Scanner(System.in);
//      随机数类
        Random random = new Random();
//      random.nextDouble()     [0,1)的小数
//      random.nextInt(n)       [0,n)的整数
        double num2 = random.nextDouble();
        System.out.println(num2);
    }
}

循环嵌套

三角形和99乘法表

public class Demo2 {
    public static void main(String[] args) {
        // 用*画一个三角形
        /*
          *
          **
          ***
          ****
          *****
        
          1x1=1
          1x2=2 2x2=4
          1x3=3 2x3=6 3x3=9
          .....
        */
//      for(int i = 1;i <= 5;i++) {
//          // 画*
//          for(int j = 1;j <= i;j++) {
//              System.out.print("*");
//          }
//          // 换行
//          System.out.println();
//      }
        for(int i = 1;i <= 9;i++) {
            for(int j = 1;j <= i;j++) {
                System.out.print(j+"x"+i+"="+i*j+" ");
            }
            // 换行
            System.out.println();
        }
    }
}
public class Demo4 {
    public static void main(String[] args) {
        // 输出2-100之间的所有质数
        // 质数:只能被1和本身整除   2 3 5 7 11 13 17 19 23...
        for(int i = 2;i < 101;i++) {
            boolean b = true;
            // 判断是否是质数
            for(int j = 2;j < i;j++) {
                // 判断是否能整出
                if(i%j == 0) {
                    // 一旦整除,b=false,表示整除过
                    b = false;
                    break;
                }
            }
            // 根据b是true还是false,我们就知道内层循环是如何结束
            // 1.true --> 自然结束
            // 2.false --> false
            if(b) {
                System.out.println(i);
            }
        }
    }
}

练习题

public class Practice3 {
    public static void main(String[] args) {
        // 求s=a+aa+aaa+aaaa+….+aa...a的值,
        // 其中a是一个数字。例如2+22+222+2222,
        // a的值和加数个数n均从控制台获取
        Scanner scan = new Scanner(System.in);
        System.out.println("请输入n");
        int n = scan.nextInt();
        System.out.println("请输入a");
        int a = scan.nextInt();
        int temp = a;
        int sum = 0;
        for(int i = 0;i < n;i++) {
            sum = sum + a;
            a = a * 10 + temp;
        }
        System.out.println(sum);
    }
}
public class Practice3 {
    public static void main(String[] args) {
        // 求s=a+aa+aaa+aaaa+….+aa...a的值,
        // 其中a是一个数字。例如2+22+222+2222,
        // a的值和加数个数n均从控制台获取
        Scanner scan = new Scanner(System.in);
        System.out.println("请输入n");
        int n = scan.nextInt();
        System.out.println("请输入a");
        int a = scan.nextInt();
        int temp = a;
        int sum = 0;
        for(int i = 0;i < n;i++) {
            sum = sum + a;
            a = a * 10 + temp;
        }
        System.out.println(sum);
    }
}
public class Practice5 {
    public static void main(String[] args) {
        // 一球从100米高度自由落下,每次落地后反跳回原高度的一半;
        // 再落下,求它在第10次落地时,共经过多少米?第10次反弹多高
        double height = 100;
        double rt = 50;
        for(int i = 2;i <= 10;i++) {
            height = height + rt * 2;
            rt = rt/2;
        }
        System.out.println(height);
        System.out.println(rt);
    }
}

你可能感兴趣的:(JavaSE之循环结构)