ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Java流程控制

2022-06-30 03:00:23  阅读:132  来源: 互联网

标签:控制 Java scanner 流程 System Scanner println else out


Java流程控制

  1. 用户交互Scanner

Scanner对象

  • 之前我们学习的基本语法中我们并没有实现程序和人的交互,但是Java给我们提供了一个工具类,我们可以获取用户的输入。Java.util.Scanner是Java5的新特征,我们可以通过Scanner类来获取用户的输入。

  • Scanner s = new Scanner(Syatem.in)

  • 通过Scanner类的next() 与nextline()方法获取输入的字符串,再读取前我们一般需要使用 hasNext() 与 hasNextLine()判断是否还有输入的数据。

  • next()

  1. 一定要读取到有效字符后才可以结束。

  2. 对输入有效字符之前遇到的空白,next()方法会自动将其去掉。

  3. 只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。

  4. next()不能得到带有字符串的字符。

  • nextLine()

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

    2. 可以获得空白。

    package scanner;

    import java.util.Scanner;

    public class Demo01 {
       public static void main(String[] args) {
           //创建以给扫描对象,用于接受键盘数据
           Scanner scanner = new Scanner(System.in);
           System.out.println("使用next方式接收:");//hello world
           //判断用户有没有输入字符
           if (scanner.hasNext()) {
              ;
               //使用next方式接受
               String str = scanner.next();//等待用户输入
               System.out.println("输出的内容为" + str);//hello
          }
           //凡是属于IO流的类如果不关闭会一直占用资源!要养成好习惯用完就关标。
           scanner.close();

      }

    }
    ===================================================================
       
    package scanner;

    import java.util.Scanner;

    public class Demo02 {
       public static void main(String[] args) {
           Scanner scanner = new Scanner(System.in);
           //创建以给扫描对象,用于接受键盘数据
           System.out.println("使用nextline方式接收:");//hello world
           //判断用户有没有输入字符
           if (scanner.hasNextLine()) {
              ;
               //使用next方式接受
               String str = scanner.nextLine();//等待用户输入
               System.out.println("输出的内容为" + str);//hello world
          }
           //凡是属于IO流的类如果不关闭会一直占用资源!要养成好习惯用完就关标。
           scanner.close();

      }
    }


    ====================================================================
       package scanner;

    import java.util.Scanner;

    public class Demo03 {
       public static void main(String[] args) {
           Scanner scanner = new Scanner(System.in);
           System.out.println("请输入数据:");
           String str = scanner.nextLine();
           System.out.println("输出的内容为:"+str);
           scanner.close();
      }
    }
    ====================================================================
    package scanner;

    import java.util.Scanner;

    public class Demo04 {
       public static void main(String[] args) {
           Scanner scanner = new Scanner(System.in);
           //从键盘接受数据
           int i = 0;
           float f = 0.0f;
           System.out.println("请输入整数:");
           //if如果....else那么......
           if (scanner.hasNextInt()) {
               i = scanner.nextInt();
               System.out.println("整数数据:" + i);
          } else {
               System.out.println("输入的不是整数数据!");
          }
               System.out.println("请输入小数:");
               if (scanner.hasNextFloat()) {
                   f = scanner.nextFloat();
                   System.out.println("小整数数据:" + f);
              } else {
                   System.out.println("输入的不是小数数据!");
              }
               scanner.close();
          }

      }
    ====================================================================
       package scanner;

    import java.util.Scanner;

    public class Demo05 {
       public static void main(String[] args) {
           //我们可以输入多个数字,并求其总和与平均数,每输入以个数字用回车确认,通过输入非数字来结束输入并输出执行结果;
           Scanner scanner = new Scanner(System.in);
           System.out.println("请输入数据:");
           //和
           double sum = 0;
           //计算输入了多少个数字
           int m = 0;
           //通过循环判断是否还有输入,并在里面进行每一次求和和统计。
           while (scanner.hasNextDouble()){
               double x = scanner.nextDouble();

               m = m + 1;//m++
               sum = sum + x;
               System.out.println("你输入了第"+m+"个数据,然后当前结果sum="+sum);
          }
           System.out.println(m + "个数的和为" + sum);
           System.out.println(m + "个数的平均值是" + (sum / m));


           scanner.close();

      }
    }

  1. 顺序结构

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

    • 顺序结构是最简单的算法结构。

    • 语句与语句之间,框架之间是按从上到下的顺序进行的,它是由若干给依次执行的处理步骤组成的,它是任何一个算法都离不开的一种基本算法结构。

      package com.tang.struct;

      public class Demo01 {
         public static void main(String[] args) {
             System.out.println("hello01");
             System.out.println("hello02");
             System.out.println("hello03");
             System.out.println("hello04");
             System.out.println("hello05");
        }
      }
  2. 选择结构

    • if单选择结构

      我们很多时候需要去判断一个东西是否可行,然后我们才去执行,这样的一个过程在程序中用if语句来表示。

      语法:

      if(布尔表达){

      //如果布尔表达式为true将执行语句False则跳过。

      }

      package com.tang.struct;

      import java.util.Scanner;

      public class IfDemo01 {
         public static void main(String[] args) {
             Scanner scanner = new Scanner(System.in);
             System.out.println("请输入内容");
             String s = scanner.nextLine();
             //equals:判断字符串是否相等(比对字符)
             if (s.equals("Hello")){
                 System.out.println(s);
            }
             System.out.println("End");


                 scanner.close();
        }
      }
    • if双选择结构

      那现在由给需求,公司要收购一个软件,成功了,给人支付100万元,失败了自己找人开发。这样的需求用一个if就搞不定了,我们需要有两个判断,需要一个双选择结构,所有就有了if-else结构。

      语法:

      if(布尔表达式){

      //如果布尔表达式的值为true

      }else{

      //如果布尔表达式的值为false

      }

      package com.tang.struct;

      import java.util.Scanner;

      public class IfDemo02 {
         public static void main(String[] args) {
             //考试分数大于60就是及格,小于60分就不及格。
             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();
        }
      }
    • if多选择结构

      我们发现刚才的代码不符合实际情况,真是的情况还可以存在abcd,存在区间多级判断。比如90-100就是A,80-90就是B等等,在生活中我们很多时候的选择也不仅仅只有两个,所有我们需要一个多选择结构来处理这类问题。

      语法:

      if(布尔表达式1){

      //如果布尔表达式1的值为true执行代码

      }else if((布尔表达式2){

      //如果布尔表达式2的值为true执行代码

      }else if((布尔表达式3){

      //如果布尔表达式3的值为true执行代码

      }else {

      //如果以上布尔表达式都不为true执行代码

      }

      package com.tang.struct;

      import java.util.Scanner;

      public class IfDemo03 {
         public static void main(String[] args) {
             Scanner scanner = new Scanner(System.in);
             /*
             if 语句至少有1个 else 语句,esle 语句在所有的 else if 语句之后。
             if 语句可以有若干个 else if 语句,它们必须在 else 语句之前。
             一旦其中一个 else if 语句检查为 true,其他的 else if 以及 else 语句都将跳过执行.
             */
             System.out.println("请输入成绩:");
             int score = scanner.nextInt();
             if (score==100){
                 System.out.println("恭喜满分");
            }else if (score<100 && score>90){
                 System.out.println("A级");
            }else if (score<90 && score>80){
                 System.out.println("B级");
            }else if (score<80 && score>70){
                 System.out.println("C级");
            }else if (score<70 && score>60) {
                 System.out.println("D级");
            }else if (score<60 && score>0) {
                 System.out.println("不及格");
            }else {
                 System.out.println("成绩不合法");
            }
             scanner.close();
        }
      }
    • 嵌套的if结构

      使用嵌套的if....else语句是合法的,也就说你可以在另外一个 if 或者 else if 语句中使用 if 或者 else if 语句,你可以像 if 语句一样嵌套 else if....else.

      语法:

      if(布尔表达式1){

      //如果布尔表达式1的值为ture执行代码

      if(布尔表达式2){

      //如果布尔表达式2的值为ture执行代码{

      }

      }

      思考?我们需要寻找一个数,在1-100之间

    • switch多选择结构

      多选择结构还有一个实现方式就是switch case语句。

      switch case 语句判断一个变量与一个系列值中某个值是否相等,每个值称为一给分支。

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

      byte、short、int、或者char

      从Java se 7开始

      switch 支持字符串 Starting 类型了

      同时 case 标签必须为字符串常量或字面量。

      语法:

      swith(expression){

      case value:

      //语句

      break;//可选

      case value:

      //语句

      break;//可选

      //可以有任意数量的case语句

      default://可选

      //语句

      }

      package com.tang.struct;

      public class SwitchDemo01 {
         public static void main(String[] args) {
             //case具有穿透性 //switch 匹配一给具体的值 break终止穿透
             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("未知等级");

            }
        }
      }
      ==============================================================
         package com.tang.struct;

      public class SwitchDemo02 {
         public static void main(String[] args) {
             String name = "狂神";
             //JDK7的新特性,表达式结果可以是字符串!!!
             //字符的本质还是数字
             //反编译 java---class(字节码文件)---反编译(IDEA)

             switch (name){
                 case "秦疆":
                     System.out.println("秦疆");
                     break;
                 case "狂神":
                     System.out.println("狂神");
                     break;
                 default:
                     System.out.println("会不会打字!");

            }
        }
      }
    •  

标签:控制,Java,scanner,流程,System,Scanner,println,else,out
来源: https://www.cnblogs.com/hbh-cn/p/16425472.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有