Java流程控制

1、用户交互Scanner

  • 基本语法

    Scanner s = new Scanner (System.in)
  • 通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取前我们一般需要使用hasNext()与hasNextLine()判断还有输入的数据。

    public class Demo01 {
       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();
      }
    }
    使用next方式接收:
    Hello World!
    输出内容为:Hello

    next():

     - 1、一定要读取到有效字符后才可以结束输入。
    - 2、对输入有效字符之前遇到的空白,next()方法会自动将其去掉。
    - 3、只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
    - 4、next()不能得到带有空格的字符串。

 

public class Demo2 {
   public static void main(String[] args) {

       //创建一个扫描器对象,用于接收键盘数据
       Scanner scanner = new Scanner(System.in);

       System.out.println("使用nextLine方式接收");

       //判断用户有没有输入字符串
       if(scanner.hasNextLine()){
           //使用next方式接收
           String str = scanner.nextLine();//程序会等待用户输入完毕
           System.out.println("输出的内容为:"+str);
      }

       //凡是属于IO流的类如果不关闭会一直占用资源
       scanner.close();
  }
}

 

使用nextLine方式接收
Hello World!
输出的内容为:Hello World!

nextLine():

  • 1、以Enter为结束符,也就是说nextLine()方法返回的是输入回车之前的所有字符。

  • 2、可以获得空白。

 

 

2、顺序结构

  • JAVA的基本结构就是顺序结构,除非特别指明,否则就按照顺序一句一句执行。

3、选择结构

  • if单选择结构

    if(布尔表达式){
    //如果布尔表达式为true将执行的语句
    }

     

  • if双选择结构

if(布尔表达式){
//如果布尔表达式的值为true
}else{
   //如果布尔表达式的值为false
}

 

  • if多选择结构

    if(布尔表达式 1){
    //如果布尔表达式 1的值为true执行代码
    }else if(布尔表达式 2){
       //如果布尔表达式 2的值为true执行代码
    }else if(布尔表达式 3){
       //如果布尔表达式 3的值为true执行代码
    }else{
       //如果以上布尔表达式都不为true执行代码
    }

     

  • if嵌套结构

    if(布尔表达式 1){
    //如果布尔表达式 1的值为true执行代码
       if(布尔表达式 2){
           //如果布尔表达式 2的值为true执行代码
      }
    }
  • switch多选择结构

switch(expression){
   case value:
       //语句
       break;//可选
   case  value:
        //语句
       break;//可选
   //可以有任意数量的case语句
   default://可选
       //语句
}

switch语句中的变量类型可以是:

    - byte、short、int或者char
- 从Java SE 7开始 switch支持字符串String类型
- 同时case标签必须为字符串常量或字面量。
public class SwitchDemo01 {
   public static void main(String[] args) {
       char grade = 'C';

       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("再接再厉");
               break; //可选
           case 'E':
               System.out.println("挂科");
               break; //可选
           default:
               System.out.println("未知等级");

      }
  }
}

 

4、循环结构

  • while循环

while(布尔表达式){
   //循环内容
}
public class whileDemo01 {
   public static void main(String[] args) {
       //输出1-100

       int i =0;
       int sum = 0;
       while(i<=100){
           sum = sum+i;
           i++;

      }
       System.out.println(sum);//5050
  }
}

 

  • do....while循环

do{
   //代码语句
}while(布尔表达式)

两个while的区别

  • while先判断后执行。dowhile是先执行后判断!

  • Do....while总是保证循环体会被至少执行一次

public class DoWhile {
   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++;
      }while(a<0);
  }
}

结果

=================
0

 

  • for循环★★★★★

    for(初始化;布尔表达式;更新){
       //代码语句
    }
    public class forDemo04 {
       public static void main(String[] args) {
           //九九乘法表
           for (int j = 1; j <= 9; j++) {
               for (int i=1;i<=j;i++){
               System.out.print(i+"*"+j+"="+(j*i)+"\t");
          }
               System.out.println();
          }
      }
    }

 

5、break &continue

  • break在任何循环语句的主体部分,均可用break控制循环的流程。break用于强行退出循环,不执行循环中剩余的语句。(break语句也在switch语句中使用)

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

 

6、练习

三角形的打印

public class TestDemo06 {
   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();
      }
  }
}

 

posted @ 2021-11-03 23:56  Will凸^-^凸  阅读(20)  评论(0编辑  收藏  举报