Java基础语法学习(四、键盘输入和流程控制语句)

文章目录

  • 一、 键盘输入
    • 1. Scanner类使用
      • 1.1 导包
      • 1.2 创建对象实例
      • 1.3 调用方法
    • 2. Scanner类代码示例
  • 二、流程控制语句
    • 1.选择结构
      • 1.1 if 单选择结构
      • 1.2 if-else双选择结构
      • 1.3 if-else if-else多选择结构
      • 1.4 switch结构
    • 2. 循环结构
      • 2.1 whlie循环
      • 2.2 do-while循环
      • 2.3 for循环
      • 2.4 无限循环
      • 2.5 break、continue和return

一、 键盘输入

1. Scanner类使用

Scanner类是引用数据类型的一种,我们可以使用该类来完成用户键盘录入,获取到录入的数据。

1.1 导包

import java.util.Scanner;

1.2 创建对象实例

Scanner sc = new Scanner(System.in);

1.3 调用方法

常用的方法有:
Java基础语法学习(四、键盘输入和流程控制语句)_第1张图片
eg.

int i = sc.nextInt();//用来接收控制台录入的数字;
String s = sc.next(); //next() 方法遇见第一个有效字符(非空格,非换行符)时,开始扫描,当遇见第一个分隔符或结束符(空格或换行符)时,结束扫描,获取扫描到的内容,即获得第一个扫描到的不含空格、换行符的单个字符串。
String s = sc.nextLine();//nextLine()方法,可以扫描到一行内容并作为一个字符串而被获取到。

note:
nextLine()方法比较特殊,返回的是Enter键之前的所有字符,它是可以得到带空格的字符串的。但是该方法会把nextInt(),next(),nextDouble(),nextFloat()的结束换行符作为字符串读入,进而不需要从键盘输入字符串nextLine()便已经转向了下一条语句执行。
因此,如果需要在nextInt(),next(),nextDouble(),nextFloat()这些方法之后使用nextLine(),我们首先需要一个nextLine()来吸收掉上面方法的结束换行符。

2. Scanner类代码示例

import java.util.Scanner;
public class TestScanner {
    public static void main(String[] args) {
        //创建Scanner引用类型的变量
        Scanner sc = new Scanner(System.in);
        /*
        nextLine()方法比较特殊,返回的是Enter键之前的所有字符,它是可以得到带空格的字符串的。
        但是该方法会把nextInt(),next(),nextDouble(),nextFloat()的结束换行符作为字符串读入,进而不需要从键盘输入字符串nextLine便已经转向了下一条语句执行。
        因此,如果需要在nextInt(),next(),nextDouble(),nextFloat()这些方法之后使用nextLine(),我们首先需要一个nextLine()来吸收掉上面方法的结束换行符。
         */
        //获取一行内容
        System.out.println("请输入一行内容");
        String str1 = sc.nextLine();
        System.out.println("str1的值为" + str1);
        //获取数字
        System.out.println("请输入一个数字");
        int n = sc.nextInt();
        System.out.println("n的值为" + n);
        //获取字符串
        System.out.println("请输入一个字符串");
        String str = sc.next();
        System.out.println("str的值为" + str);
        //获取一行内容
        System.out.println("请输入一行内容");
        String str12 = sc.nextLine();
        String str123 = sc.nextLine();
        System.out.println("str12的值为" + str12+"str123的值为"+str123);

    }
}


输出为:
Java基础语法学习(四、键盘输入和流程控制语句)_第2张图片
我们可以看到sc.next()方法输出是空格之前的内容second,遇到空格后直接结束,剩余部分保留到了缓冲区,而第一个sc.nextLine()没有输入,直接输出sc.next()的未输出内容,遇到我们敲的回车后结束。第二个sc.nextLine()才是正常获取用户的输入。

二、流程控制语句

1.选择结构

1.1 if 单选择结构

语法结构

if(布尔表达式){
    语句块
}

流程图
Java基础语法学习(四、键盘输入和流程控制语句)_第3张图片

1.2 if-else双选择结构

语法结构

if(布尔表达式){
语句块1
}else{
       语句块2
}

流程图
Java基础语法学习(四、键盘输入和流程控制语句)_第4张图片

1.3 if-else if-else多选择结构

语法结构

if(布尔表达式1) {
语句块1;
} else if(布尔表达式2) {
语句块2;
}……
else if(布尔表达式n){
    语句块n;
} else {
    语句块n+1;
}

流程图
Java基础语法学习(四、键盘输入和流程控制语句)_第5张图片

1.4 switch结构

语法结构

switch (表达式) {
case1: 
语句序列1;
[break];
case2:
 语句序列2;
[break];
     … … …      … …
[default:
 默认语句;]
}

流程图
Java基础语法学习(四、键盘输入和流程控制语句)_第6张图片
示例

public class Test6 {
    public static void main(String[] args) {
        char c = 'a';
        int rand = (int) (26 * Math.random());
        char c2 = (char) (c + rand);
        System.out.print(c2 + ": ");
        switch (c2) {
        case 'a':
        case 'e':
        case 'i':
        case 'o':
        case 'u':
            System.out.println("元音");
            break;
        case 'y':
        case 'w':
            System.out.println("半元音");
            break;
        default:
            System.out.println("辅音");
        }
    }
}

2. 循环结构

2.1 whlie循环

语法结构

while (布尔表达式) {
    循环体;
}

在循环刚开始时,会计算一次“布尔表达式”的值,若条件为真,执行循环体。而对于后来每一次额外的循环,都会在开始前重新计算一次。
流程图
Java基础语法学习(四、键盘输入和流程控制语句)_第7张图片

2.2 do-while循环

语法结构

do {
        循环体;
     } while(布尔表达式) ;

do-while循环结构会先执行循环体,然后再判断布尔表达式的值,若条件为真,执行循环体,当条件为假时结束循环。do-while循环的循环体至少执行一次。
流程图
Java基础语法学习(四、键盘输入和流程控制语句)_第8张图片

2.3 for循环

语法结构
for (初始表达式; 布尔表达式; 迭代因子) {
循环体;
}
流程图
Java基础语法学习(四、键盘输入和流程控制语句)_第9张图片

2.4 无限循环

for ( ; ; ) 

or

 while(true)//Java中不可有while(1)

2.5 break、continue和return

  • 在任何循环语句的主体部分,均可用break控制循环的流程。break用于强行退出整个循环体,不执行循环中剩余的语句。
  • continue 语句用在循环语句体中,用于终止某次循环过程,即跳出当前的这一次循环,继续下一次循环。
  • return语句用于跳出所在方法,结束该方法的运行。一般有两种用法:
    1.return;直接使用return结束方法执行,用于没有返回值的函数方法
    2.return value;return一个特定值,用于有返回值的函数方法

你可能感兴趣的:(Java学习)