java流程控制(用户交互、顺序结构、循环结构)

时间:2021-07-20
本文章向大家介绍java流程控制(用户交互、顺序结构、循环结构),主要包括java流程控制(用户交互、顺序结构、循环结构)使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

Java流程控制

用户交互Scanner

  • Scanner s = new Scanner(System.in);

  • Scanner 类的next()和nextLine()方法获取输入的字符串的区别:

    1. next没有拼接字符串的功能,如这里不能写hello world,可以写helloworld

      public static void main(String[] args) {
          //创建一个扫描器,用户键盘接收数据
          Scanner scanner = new Scanner(System.in);
      
          System.out.println("使用next方式接收:");
          if (scanner.hasNext()){
              //获取键盘输入的数据,将数据传给str
              String str = scanner.next();
              System.out.println("输入的内容为:"+str);
          }
          //关闭
          scanner.close();
      }
      
    2. nextLine可以自动拼接字符串,下面的代码不用if语句,因为在实际使用中,可以直接使用,不需要if来判断,科省略

       public static void main(String[] args) {
              //创建一个扫描器,获取键盘输入的值
              Scanner scanner = new Scanner(System.in);
              //将获取到的数据传给str
              String str = scanner.nextLine();
              //输出
              System.out.println("你输入的数据是:"+str);
              scanner.close();
          }
      
    3. 例子

      public static void main(String[] args) {
          //输入多个数字,显示当前输入了多少个数字、输入数字的总和以及平均数
          Scanner scanner = new Scanner(System.in);
          //总数
          double sum= 0 ;
          //输入数字个数
          int i = 0;
          while (scanner.hasNextDouble()){
              double x = scanner.nextDouble();
              i =i+1;
              sum = sum+x;
              System.out.println("你当前输入的第:"+i+"个数据,当前和结果为:"+sum);
          }
          System.out.println(i+"个数的和是:"+sum);
          System.out.println(i+"个数的平均值是:"+(sum/i));
      
      
          scanner.close();
      }
      

      10
      你当前输入的第:1个数据,当前和结果为:10.0
      20
      你当前输入的第:2个数据,当前和结果为:30.0
      30
      你当前输入的第:3个数据,当前和结果为:60.0
      w
      3个数的和是:60.0
      3个数的平均值是:20.0

顺序结构

  1. java的基本结构就是顺序结构,除非特别指明,否则就是一句一句的执行
  2. 是任何算法都离不开的一个基本结构

选择结构

  1. if单选择结构:

    public static void main(String[] args) {
       Scanner scanner = new Scanner(System.in);
        System.out.println("请输入金额,单位万");
        String money = scanner.nextLine();
        if (money.equals("100")){
            System.out.println("支付成功,支付金额为"+money+"万,收购成功");
        }else{
            System.out.println("支付失败,支付金额为"+money+"万,自己做开发");
        }
        scanner.close();
    }
    
  2. if双选择结构:

    public static void main(String[] args) {
    
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入成绩");
        int score = scanner.nextInt();
        if (score>60){
            System.out.println("及格");
        }else{
            System.out.println("不及格");
        }
    
        scanner.close();
    }
    
  3. 多选择结构:一旦其中一个else if语句检测为true,则其他的else if以及else语句都将跳过执行

    Scanner scanner = new Scanner(System.in);
        System.out.println("请输入成绩");
        int score = scanner.nextInt();
        if (score==100){
            System.out.println("恭喜满分");
        }else if (score>90){
            System.out.println("A级");
        }else if (score>80) {
            System.out.println("B级");
        }else if (score>70) {
            System.out.println("C级");
        }else if (score>60) {
            System.out.println("D级");
        }else {
            System.out.println("不及格");
        }
        scanner.close();
    }
    
  4. 嵌套if结构:

  5. switch多选择结构:jdk7以后,可以接字符串,比如grade ='英俊',case'英俊'

    char grade = 'A';
    switch (grade){
        case 'A':
            System.out.println("优秀");
            break;
        case 'B':
            System.out.println("良好");
            break;
        case 'C':
            System.out.println("及格");
            break;
        case 'D':
            System.out.println("挂科");
    }
    

循环结构

  • while循环:只要布尔表达式为true,循环就会一直持续下去,尽量避免死循环,例子(计算1-100数相加的和)

    public static void main(String[] args) {
        int i = 0;
        int sum = 0;
        while (i<=100){
            sum = sum+i;
            i++;
        }
        System.out.println(sum);
    }
    
  • do...while循环:

      public static void main(String[] args) {
            int a = 0;
            while (a<0){
                System.out.println(a);//不输出结果
                a++;
            }
            System.out.println("--------------------------");
            do {
                System.out.println(a);//可以输出a=0,以为do while ,至少会运行一次,不管循环成立与否
                a++;
            }while (a<0);
        }
    
  • for循环:是一种最有效、最灵活的循环结构。

     public static void main(String[] args) {
            int a;
            for (a=0;a<100;a++){
                System.out.println(a);
            }
            System.out.println("for循环结束");
        }
    
  • for循环嵌套实列:(打印99乘法表)

    public static void main(String[] args) {
        for (int i = 1; i <=9; i++) {
            for (int j = 1; j <= i; j++) {
                System.out.print(j+"*"+i+"="+i*j+"\t");
            }
            System.out.println();
        }
    }
    
  • 增强for循环

    public static void main(String[] args) {
        int[] number = {10,20,30,40,50};
        for (int i = 0;i<5;i++){
            System.out.println(number[i]);
        }
        System.out.println("+++++++++++++++++++++");
        for (int x:number){
            System.out.println(x);//下面这个是增强for循环,遍历了一个数组,结果和上面的for循环一样
        }
    }
    

break continue

  1. break 用于强制退出循环,不执行循环中剩余的语句。

  2. continue用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着执行下一次循环判定。

  3. goto关键字:指从循环中跳出到另一个循环之中来,如下例中,通过给循环命名,然后在continue你想跳到的循环名。

    //练习:输出101—151中的所有质数,质数指的是,在大于一的自然数中只存在1和他本身为因素的自然数。
    public static void main(String[] args) {
        int count = 0;
        out: for (int i=101;i<151;i++){
            for (int j=2;j<i/2;j++){
                if (i%j == 0){
                    continue out;
                }
            }
            System.out.println(i+"");
        }
    }
    

for循环例子

  1. 打印三角形:

    public static void main(String[] args) {
        //打印三角形
        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();
        }
    }
    

    ![image-20210720154656762](C:\Users\MKZ Lenovo\AppData\Roaming\Typora\typora-user-images\image-20210720154656762.png)

原文地址:https://www.cnblogs.com/wscn/p/15035414.html