Java流程控制

Java流程控制

Scanner

  • 通过Scanner类来获取用户的输入

    next()与nextLine()的方法来获取输入的字符串

    hasNext()与hasNextLine()判断是否还有输入的数据

    • next():

    1. 一定要读取到字符才可与结束输入

      2. 以空白为结束符
        3. next()不能的得到带有空白的字符串
    • nextLine:

    1. 以回车为结束符;返回的是输入回车前的所有字符

    2. 可以获得空白的字符串

    package scanner;

    import java.util.Scanner;

    public class Demo1 {
       public static void main(String[] args) {
           //创建一个扫描对象,用于接受键盘数据
           Scanner scanner = new Scanner(System.in);
           System.out.println("使用next方方式输入");
           //判断用户是否输入字符串
           if (scanner.hasNext()){
               //使用next的方式来接收
              String str = scanner.next();//程序会等待用户输入完毕
              System.out.println("输出内容为"+str);
          }
           //属于IO流的用完要关掉,不然会占用资源
           scanner.close();
      }
    }
    package scanner;

    import java.util.Scanner;

    public class Demo2 {
       public static void main(String[] args) {
           //接受键盘输入数据
           Scanner scanner = new Scanner(System.in);
           System.out.println("使用nextLine方式接收");
           //判断是否输入
           if (scanner.hasNextLine()) {
               //使用nextLine的方式来接受
               String str = scanner.nextLine();//程序会等待输入完毕
               System.out.println("输出内容为" + str);
          }
           //对于IO流 用了要即使关闭,占资源
           scanner.close();
      }
    }
  • 其他用法

package scanner;

import java.util.Scanner;

public class Demo3 {
   public static void main(String[] args) {
       //接受数据
       Scanner scanner = new Scanner(System.in);
       //定义初始值
        int i = 0;
        float  o = 0.0F;
       System.out.println("请输入整数");//提示语
       //判断是否输入的整数 后面加了int
       if(scanner.hasNextInt()) {
           i = scanner.nextInt();//等待输入整数
           System.out.println("整数数据:" + i);
      }else {//输入的不是整数则输出这个
           System.out.println("你输入的不是整数!");
      }
       System.out.println("请输入小数数据");//提示语
       //判断是否输入的是小数
       if(scanner.hasNextFloat()) {
           o = scanner.nextFloat();//等待输入
           System.out.println("小数数据:" + o);//正确情况
      }else{//错误情况
           System.out.println("你输入的不是小数数据");
      }
       //用的IO流,用完关闭
       scanner.close();
  }
}
package scanner;

import java.util.Scanner;

public class Demo4 {
   public static void main(String[] args) {
       //引入类用于接受数据
       Scanner a = new Scanner(System.in);
       //定于初始值
       double b = 0;
       int c = 0;
       System.out.println("请输入数据");//提示语
       //循环语句输入的不是数字则会结束 因后面我加了double
       while(a.hasNextDouble()){
           double d = a.nextDouble();//等待输入
           c = c+1;//每输入一次都会循环一次就会+1
           b = b+d;//同理
           System.out.println("你输入了第"+c+"数,"+"当前结果sum="+b);//每输入完用于提示
      }
       //最后直到我结束上面的循环才会输入这个
       System.out.println(c+"个数的和为"+b);
       System.out.println(c+"个数的平均值"+(b/c));
       //用IO流,最后要关闭
       a.close();
  }
}

顺序结构

  • 依次执行 基本算法结构

选择结构

if

  1. 单选择结构 equals :判断字符串是否相等

package struct;

import java.util.Scanner;

public class Ifemo1 {
   public static void main(String[] args) {
       Scanner sc = new Scanner(System.in);
       System.out.println("请输入输入内容");
       String s = sc.nextLine();
       //equals:判断字符串是否相同
       if(s.equals("Hello")){
           System.out.println(s);
      }
       System.out.println("End");
       sc.close();
  }
}
  1. 双选择结构

package struct;

import java.util.Scanner;

public class IfDemo2 {
   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();
  }
}
  1. 多选择结构

package struct;

import java.util.Scanner;

public class IfDemo4 {
   public static void main(String[] args) {
       Scanner scanner = new Scanner(System.in);
       System.out.println("输入");
       int a = scanner.nextInt();
       if (a == 100){
           System.out.println("满分");
      }else if (a >= 90 && a <100){
           System.out.println("优秀");
      }else if (a >=0 && a < 90){
           System.out.println("垃圾");
      }else{
           System.out.println("不合法");
      }
       scanner.close();
  }
}

Switch

  • 基本结构:

     

  • 匹配一个具体的值

  • case 穿透现象

  • break 打断case穿透

package struct;

public class SwitchDemo1 {
   public static void main(String[] args) {
       String name = "薛";
       //switch:匹配一个具体的值
       switch(name){
           //case:定义内容 但具有穿透行性
           case"张":
               //如果值和内容相等,则输出
               System.out.println("张");
               //break:打断case的穿透
               break;
           case"薛":
               System.out.println("薛");
               break;
               //如果都没有,则
           default:
               System.out.println("无此人");
      }
  }
}

循环结构

while

  1. 基本结构 while(布尔表达式){ }

  2. 只要布尔吧表达式为ture,循环就会一直执行

  3. 避免死循环

  4. 先判断后执行

package struct;

public class WhileDemo1 {
   public static void main(String[] args) {
       //定义起始值
       int q = 0;
       //循环到50停止
       while (q<50){
           q = ++q;
           //每次循环到最后输出值
           System.out.println(q);
      }
  }
}
package struct;

public class WhileDemo2 {
   public static void main(String[] args) {
       //1+到100的和
       //定义初始值
       int a = 0;
       int sum = 0;
       //循环a到100停止
       while(a<=100){
           sum = sum+a;
           a++;
      }
       System.out.println(sum);
  }
}

do while

  1. 基本结构:do{

代码语句

}while(布尔表达式);

  1. 先执行后判断

package struct;

public class DoWhileDemo1 {
   public static void main(String[] args) {
       //定义起始值
       int a = 1;
       //while 先判断后执行
       while(a<1){
           System.out.println(a);
           a++;
      }
       System.out.println("=================================");
       //do while 先执行后判断
       do{
           System.out.println(a);
           a++;
      }while(a<1);
  }
}

For循环

  • 基本结构:

     

package struct;

public class ForDemo1 {
   public static void main(String[] args) {
       //初始值——条件判断——更新
       for (int i = 0; i < 100; i++) {
           System.out.println(i);
      }
  }
}

增强for循环

  • 主要用于数组

  • 基本结构

     

package struct;

public class ForDemo5 {
   public static void main(String[] args) {
       //定义数组
       int[] numbers = {10,20,30,40,50};
       for (int a = 0; a < 5; a++ ){
           System.out.println(numbers[a]);
      }
       System.out.println("=================");
       //遍历数值元素
       for(int x:numbers){
           System.out.println(x);
      }
  }
}

break与continue

  • break:强制退出循环

  • continua:终止某次循环

  • package struct;

    public class BrerakDemo1 {
      public static void main(String[] args) {
          //break 强制停止并退出
          int a = 0;
          while(a<50){
              a++;
              if(a == 20){
                  break;
              }
              System.out.println(a);
          }
      }
    }
package struct;

public class ContinueDemo {
   public static void main(String[] args) {
       //continue 终止某一次循环
       int a = 0;
       while(a<50){
           a++;
           if (a%10==0){
               System.out.println();
               continue;
          }
           System.out.print(a);
      }
  }
}

 

posted @ 2021-12-19 20:47  一朵白云tea  阅读(63)  评论(0)    收藏  举报