基础 与 数值计算Basics and Numbers

输入输出I/O

延伸阅读

针对在高校读书的同学,你们学校大概率在输入输出时,采用 Java 原生态 API

这里给大家列举下 如何 使用原生态的 API。

如果你现在没有在高校里上对应的课程,就可以大概阅读了解一下,就好了

写作业 还用 Jadeite 的 Console

输出

当你想写

1
Console.println(x);

时,你需要写

1
System.out.println(x);

比如,不写

1 2
int a = 3;Console.println(a);

1 2*
int a = 3;System.out.println(a);
输入

当你想写下方高亮的部分时

1 2 3 4 5 6
public class Main { public static void main(String[] args) { int value1 = Console.readInt(); int value2 = Console.readInt(); }}

这时候首先在代码中增加这两行(只需要一次)

1+2 3 4+5 6 7 8 9
import java.util.Scanner; public class Main { Scanner scanner = new Scanner(System.in); public static void main(String[] args) { int value1 = Console.readInt(); int value2 = Console.readInt(); }}

注意:

一定要注意上面这些新加的代码的位置,不要加错

然后 把 Console 换掉成

1 2 3 4 5 6*7*8 9
import java.util.Scanner; public class Main { Scanner scanner = new Scanner(System.in); public static void main(String[] args) { int value1 = scanner.nextInt(); int value2 = scanner.nextInt(); }}

小数 字符串同理 比如

1 2 3 4 5 6 7 8 9 10 11
import java.util.Scanner; public class Main { Scanner scanner = new Scanner(System.in); public static void main(String[] args) { int value1 = scanner.nextInt(); int value2 = scanner.nextInt(); double value3 = scanner.nextDouble(); String value4 = scanner.nextLine(); }}
scanner 扫描的一些问题

当你希望用户一行输入数,下一行输入文字时

> >
9917zzax

你的代码可能是这个

1 2 3 4 5 6 7 8 9
import java.util.Scanner; public class Main { Scanner scanner = new Scanner(System.in); public static void main(String[] args) { int port = scanner.nextInt(); String name = scanner.nextLine(); }}

但当你打印时,你可能会看到不是预期的效果

1 2 3 4 5 6 7 8 9 10 11 > > < <
import java.util.Scanner; public class Main { Scanner scanner = new Scanner(System.in); public static void main(String[] args) { int port = scanner.nextInt(); String name = scanner.nextLine(); System.out.println(port); System.out.println(name); }}9917zzax9917

这里 name 显示不出来是正常的,是因为 scanner 内部缓冲区机制导致的。

所以,每当你 nextInt 或 nextDouble 后,想 nextLine 时

一定要在 nextLine 之前,增加下面这段代码

1 2 3 4 5 6 7+8 9 10 11 12 > > < <
import java.util.Scanner; public class Main { Scanner scanner = new Scanner(System.in); public static void main(String[] args) { int port = scanner.nextInt(); scanner.nextLine(); String name = scanner.nextLine(); System.out.println(port); System.out.println(name); }}9917zzax9917zzax

此时才会正常输出

注释Comments

简答题

这个代码运行后的结果是

public class Main {
    public static void main(String[] args) {
        // Console.println("哎呦喂");
    }
}
答案

什么都看不到,因为输出的代码被注释掉了

变量Variables

单选题

下面哪段代码是可以正常运行的

A
public class Main {
    public static void main(String[] args) {
        intvalue = 1;
    }
}
B
public class Main {
    public static void main(String[] args) {
        int value = 1;
        int value = 2;
    }
}
C
public class Main {
    public static void main(String[] args) {
        int value = 1;
        Console.println(Value);
    }
}
D
public class Main {
    public static void main(String[] args) {
        int value = 1;
        int value2 = 2;
        Console.println(value);
    }
}

代码题

倒数

Q47

数据类型Data Types

单选题

下面的类型中,哪个是 8 大基础类型之一

A

Integer

B

String

C

Double

D

boolean

解释

可以通过单词开头大小写作为最基本的区别

选项中的 Double 不是 double,所以不是基础类型

IntegerDouble 会在 将来 Java 112 课程里介绍

boolean 会在过几节课介绍

数据类型匹配

多选题

下面这几行的代码,会在第几行报错飘红,总共有 4 处。

1 2 3 4 5 6 7 8 9 10 11 12 13
public class Main { public static void main(String[] args) { int v11 = 1; int v12 = 1.0; int v13 = 1.1; int v14 = "1"; double v21 = 1; double v22 = 1.0; double v23 = 1.1; double v24 = "1"; }}
A

v11 那行

B

v12 那行

C

v13 那行

D

v14 那行

E

v21 那行

F

v22 那行

G

v23 那行

H

v24 那行

单选题

下面的代码 运行后,你会看到什么

1 2 3 4 5 6
public class Main { public static void main(String[] args) { int value = (int)1.999999; Console.println(value); }}
A

1

B

1.99

C

1.999999

D

2

E

会报错,因为类型不匹配

算数运算符Arthmetic Operators

代码题

平均值 基础版

Q48 E01

代码题

先做第一个版本

整数拆分 基础版

Q1 E01

然后改成 下面这个版本

整数拆分 四位数加强版

Q1 E02

综合练习

代码题

温度转换 基础版

Q49 E01

代码题

支付密码生成

Q50

ZZAX 微信公众

文档一更新,立刻告诉你