3.1用户交互Scanner

可以通过Scanner类来获取用户的输入:

  语法: Scanner s = new Scanner(System.in);

  通过Scanner类的next()nextLine()方法获取输入的字符串;  

  读取之前,使用hasNext()hasNextLine()来判断是否还有输入的数据。

 package com.hch.scanner;
 ​
 import java.util.Scanner;
 ​
 public class Demo01_Scanner {
     public static void main(String[] args) {
         //创建一个扫描器接收对象(键盘输入值)
         Scanner scanner = new Scanner(System.in);
         System.out.println("用next方法接收:");
         //判断用户有没有输入字符串
         if (scanner.hasNext()){
             String str = scanner.next();
             System.out.println("输出的内容:"+str);
        }
         //凡是属于IO流的类如果不关闭,则会一直占用资源。
         scanner.close();
         
         System.out.println("用nextLine方法接收:");
 //       if (scanner.hasNextLine()){
 //           String str1 = scanner.nextLine();
 //           System.out.println("输出内容2:"+str1);
 //       }
 //       scanner.close();
    }
 }
 ​

Scanner对象:

·next():

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

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

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

  4、next()不能得到带有空格的字符串。

·nextLine():

  1、以Enter键为结束符,即:输出所有Enter键之前的字符串包括空格

  2、可以获得空白

3.2顺序结构

  Java最基本的结构就是顺序结构。(从上往下顺序依次执行)

3.3选择结构

3.3.1 if单选择结构

if(布尔表达式){

//如果布尔表达式为true将要执行的语句

}

 package com.hch.struct;
 ​
 import java.util.Scanner;
 ​
 public class Demo01_if {
     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();
    }
 }
 ​

3.3.2if双选择结构

if(布尔表达式){

//如果布尔表达式为true的时候执行的语句

}else{

//如果为false执行的语句

}

 package com.hch.struct;
 ​
 import java.util.Scanner;
 ​
 public class Demo02_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.3.3if多选择结构(注意:一个if语句可以有多个else if语句但是只能有一个 if 语句和一个 else 语句)

if(布尔表达式1){

//如果布尔表达式1为true时执行语句

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

//如果布尔表达式2为true时执行

}...else if(布尔表达式n){

//如果布尔表达式n正确执行代码

}else{

//如果以上都不正确执行语句

}

 package com.hch.struct;
 ​
 import java.util.Scanner;
 ​
 public class Demo03_if {
     public static void main(String[] args) {
         Scanner scanner = new Scanner(System.in);
 ​
         System.out.println("请输入成绩:");
         int score = scanner.nextInt();
         if (score > 100){
             System.out.println("超出范围");
        }else 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();
    }
 }
 ​

3.3.4嵌套的if结构

if(布尔表达式1){

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

if(布尔表达式2){

//如果表达式2为true执行的语句.....

}

}

3.3.5switch多选择结构(switch case语句)

switch中的变量类型可以是:

  1、byte、short、int、或者char

  2、从JavaSE7开始,switch支持字符串String类型

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

switch(expression){

case value:

//语句

break;//可选

case value:

//语句

break;//可选;case数量任意

default://可选

//语句

}

==关于break 和 continue的联系与区别:==

  1、break在任何循环语句的主体部分;continue用在循环语句体中。

  2、break用于强行退出循环,不执行剩下的语句;continue用于跳过尚未执行的语句,接着下一次是否执行循环的判断

 package com.hch.struct;
 ​
 public class Demo03_switch {
     public static void main(String[] args) {
         
         char grade = 'A';
         //switch ==> 匹配一个值
         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("未知等级");
        }
    }
 }
 ​

3.4循环结构

3.4.1 while循环

  1、只要布尔值为true,循环就会一直执行下去

  2、避免死循环(我们需要一个表达式让循环停止或者失效)

while(布尔表达式){

//循环内容

}

 package com.hch.struct;
 ​
 public class Demo05_while {
     public static void main(String[] args) {
 //       int i = 0;
 //       while (i<=100){
 //           i++;
 //       }
 //       System.out.println(i);
 ​
         int i = 0;
         int sum = 0;
         while (i<=100){
             sum = sum + i;
             i++;
        }
         System.out.println(sum);
    }
 }

3.4.2 do...while循环

  1、与while不同。do while语句至少执行一次,do后面的语句。

  2、while先判断后执行,do while先执行后判断。

do{

//语句

}while(布尔表达式);

 package com.hch.struct;
 ​
 public class Demo06_do_while {
     public static void main(String[] args) {
         int i = 0;
         int sum = 0;
         do {
             sum = sum + i;
             i++;
        }while (i<=100);
         System.out.println(sum);
    }
 }

3.4.3 for循环

  1、支持迭代的一种通用结构,是最有效、最灵活的循环结构。

  2、最先执行初始化步骤,可以声明一个或多个控制变量也可为空值。

  3、然后检测布尔值是否为true,是则执行,否则跳出。

for(初始化;布尔表达式;更新操作){

//语句

}

 package com.hch.struct;
 ​
 public class Demo07_for {
     public static void main(String[] args) {
 //       for (int i =0;i<=100;i++){
 //           System.out.println(i);
 //       }
 //       100.for 快捷生成IDEA生成
 //       int oddSum = 0;
 //       int evenSum = 0;
 //       for (int i = 0;i <= 100; i++){
 //           if (i%2 != 0){ //i/2余数不等于0 为奇数
 //               oddSum+=i;
 //           }else { //偶数
 //               evenSum+=i;
 //           }
 //       }
 //       System.out.println();
 //       System.out.println("奇数和:"+oddSum);
 //       System.out.println("偶数和:"+evenSum);
         for (int i = 1;i <= 9;i++){
             for (int j = 1;j <= i; j++){
                 System.out.print(i+"*"+j+"="+(j*i) + "\t");
            }
             System.out.println();
        }
    }
 }

Java流程控制(Scanner)的更多相关文章

  1. Java流程控制与Scanner类的使用

    Java流程控制与Scanner类的使用 Scanner类 Scanner类可以使程序接受键盘输入,实现人机交互 一个完整的Scanner的使用例子: //创建一个扫描器对象,用于接收键盘数据 Sca ...

  2. 第4天 JavaDoc生成文档&Java流程控制(第一节:用户交互Scanner)

    JavaDoc生成文档 javadoc命令是用来生成自己的API文档 参数信息: @author 作者名 @version 版本号 @since 指明需要最早使用的jdk版本 @param 参数名 @ ...

  3. JAVA流程控制

    JAVA流程控制 example1: --输出九九乘法表 public class chengfabiao { public static void main (String[] args){     ...

  4. Java学习笔记之:Java流程控制

    一.介绍 Java流程控制包括顺序控制.条件控制和循环控制. 顺序控制,就是从头到尾依次执行每条语句操作.条件控制,基于条件选择执行语句,比方说,如果条件成立,则执行操作A,或者如果条件成立,则执行操 ...

  5. Java流程控制练习--万年历

    Java流程控制练习--万年历 标签: Java入坑之旅 0x01. 打印倒三角和正三角 public static void main(String[] args) { // TODO Auto-g ...

  6. 044 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 06 使用do-while循环实现猜字游戏

    044 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 06 使用do-while循环实现猜字游戏 本文知识点:do-while循环深入运用 案例练习 案例 ...

  7. 038 01 Android 零基础入门 01 Java基础语法 04 Java流程控制之选择结构 05 案例演示switch结构-星期的表示案例以及总结

    038 01 Android 零基础入门 01 Java基础语法 04 Java流程控制之选择结构 05 案例演示switch结构-星期的表示案例以及总结 本文知识点:案例演示switch结构并对sw ...

  8. java流程控制学习

    Java流程控制 计算的步骤就是算法. 1.用户交互Scanner next()不能得到带有空格的字符串.[它是以空格为结束符]nextline()可以,[它是以回车为结束符] 2.顺序结构 从上到下 ...

  9. 4. Java流程控制

    4.Java流程控制 4.1.用户交互Scanner 之前我们学的基本语法中我们并没有实现程序和人的交互,但是Java给我们提供了这样一个工具类,我们可以获取用户的输入.java.util.Scann ...

  10. Java 流程控制

                                   Java    流程控制 Java 分支结构 - if...else/switch 顺序结构只能顺序执行,不能进行判断和选择,因此需要分支 ...

随机推荐

  1. 解决UEditor编辑时,只添加视频内容,不添加文字,视频信息不能保存到数据库的问题

    造成这个问题的原因是富文本保存内容时会筛除空标签,然后统计是否有内容,通过字数统计也可以看到,上传完视频后字数还是零,因为视频上传后是<video></video>标签,这个标 ...

  2. 洛谷 CF1012C Hills (动态规划)

    题目大意:有n个山丘 , 可以在山丘上建房子 , 建房子的要求是 : 该山丘的左右山丘严格的矮于该山丘 (如果有的话),你有一架挖掘机,每单位时间可以给一个山丘挖一个单位的高度,问你想要建造 1,2, ...

  3. msf stagers开发不完全指北(一)

    采用c开发stagers 前言 之前有写过一篇 metasploit payload运行原理浅析(sockedi调用约定是什么),里面有提到以后了解这些东西后可以做的事情,其实包括但不限于自写stag ...

  4. 基础的markdown用法

    首先推荐一款在线的markdown编辑器:Editor.md 一篇博客里面就是文字与图片的集合.markdown其实就是编辑文字,插入图片的工具.对于大多数人来说,学习几个标签就可以了. 标题 #** ...

  5. 洛谷 P1313 【计算系数】

    这道题只要肯动手还是挺水的 进入正题 我们先枚举几个找找规律(这里先省略x,y): k = 0 :\(1\) k = 1 : \(a\) \(b\) k = 2 : \(a^{2}\) \(2ab\) ...

  6. vs2017+opencv3.4.0的配置方法

    1.尝试了这个博客的方法: https://blog.csdn.net/u014574279/article/details/50909425/ 结果: 无法打开文件“opencv_ml2410d.l ...

  7. css3实现背景颜色渐变,文字颜色渐变,边框颜色渐变

    css3的渐变可以使用2个或者多个指定的颜色之间显示平稳的过渡的效果.这篇文章主要介绍下css3实现背景颜色渐变,文字颜色渐变,边框颜色渐变的方法,以便大家学习参考! 1.css背景颜色渐变 代码: ...

  8. web页面的重构和回流【转载】

    在了解什么是重构和回流之前,我们应该先看看浏览器是怎么渲染的? 浏览器的渲染过程: 1.处理HTML脚本,生成DOM树(DOM树里包含所有的HTML标签,包括display:none和js动态添加的元 ...

  9. css可以修改超链接颜色吗?

    超链接a标签大家都应该很熟悉,这篇文章主要的讲的是a标签的基础css样式设置,下面我们来看一下css修改超链接颜色的方法. css可以使用下面几个伪类来设置超链接: a:link :是未被访问的样式, ...

  10. C#读取Excel转为DataTable

    需要的Dll: NPOI.OOXML.dll    https://files.cnblogs.com/files/CityOfThousandFires/NPOI.dl.rar /// <su ...