杨溢 河北工业大学·2022届
APP 内打开
分享
1
146

《明解Java》笔记:第2章


官方小结:

变量可以自由存取数值等数据。需要变量时,赋予其类型和名称,进行声明。

在从变量中取出值之前,必须进行初始化或赋值,将值赋给该变量。初始化是在创建变量时赋予初始值,赋值则是将值赋给创建好的变量。

变量是在需要时进行声明的。另外,最好在声明中赋上初始值,明确将变量初始化。

final变量通过初始化或赋值,只赋入一次值。在给常量赋予名称时可以使用该变量。

在诸多的类型中,Java语言提供的标准类型是基本类型。

int型是一种表示整数的整形。

像13这样的常量称为整数常量。

double型是一种表示实数(浮点数)的浮点型。

像3.14这样的常量称为浮点型常量。

用于表示字符串(字符序列)的是String型。该类型不是基本类型。

执行运算的符号是运算符,作为运算对象的表达式则是操作数。运算符根据操作数的个数分为3类:一元运算符、二元运算符、三元运算符。

用括号括起来的运算会优先执行。

在“字符串+数值”或“数值+字符串”的运算中,数值要转换为字符串之后再进行拼接。

读入通过键盘输入的值时使用标准输入流。Scanner类的next…方法用来读取标准输入流中的字符。

通过生成随机数,可以创建随机的值。Random类的nexe…方法用来生成随机数。

通过“整数/整数”运算得到的商是舍去小数部分后的整数值。

Finersoft按阿里规范格式化后的代码:

https://github.com/finersoft/ShinMeiKaiJava/tree/master/src/com/finersoft/chap02 

Finersoft的课后作业

2-1

复制代码

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

package com.finersoft.chap02.homework;

 

/**

 * 名称:作业2-1

 * 说明:

 * @author Finersoft

 * @date 2018年3月23日

 */

public class Ex0201 {

 

    /**

     * @param args

     */

    public static void main(String[] args) {

            // x是int型变量

            int x;

            // y是int型变量

            int y;

            //定义一个浮点型变量z

            double z;

             

            // 把63赋给x

            x = 63;

            // 把18赋给y

            y = 18;

             

            //错误说明

            // 把63.0赋给x:Type mismatch: cannot convert from double to int

            //x = 63.0;

            // 把18.1赋给y:Type mismatch: cannot convert from double to int

            //y = 18.1;

             

            //解决办法:加强制转换或修改参数定义类型

            // 把63.0赋给x:Add cast to 'int'

            x =(int) 63.0;

            // 把18.1赋给y:Change type of 'y' to 'double'

            //y = 18.1;

            z=18.0;

             

            // 显示x的值

            System.out.println("x的值是" + x + "。");

            // 显示y的值

            System.out.println("y的值是" + y + "。");

            // 显示z的值

            System.out.println("z的值是" + z + "。");

            // 显示合计值

            System.out.println("合计值是" + (x + y) + "。");

            // 显示平均值

            System.out.println("平均值是" + (x + y) / 2 + "。");

 

    }

 

}

 

    

2-2

复制代码

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

package com.finersoft.chap02.homework;

 

import java.util.Scanner;

 

/**

 * 名称:作业2-2

 * 说明:编写一个程序对三个整数赋值,并计算合计值和平均值。

 * 

 * @author Finersoft

 * @date 2018年3月23日

 */

public class Ex0202 {

 

    /**

     * @param args

     */

    public static void main(String[] args) {

        Scanner stdIn = new Scanner(System.in);

 

        try {

            System.out.println("本程序用于输入三个数,并输出总计和平均值。");

            System.out.print("请输入整数值a:");

            int a = stdIn.nextInt();

            System.out.print("请输入整数值b:");

            int b = stdIn.nextInt();

            System.out.print("请输入整数值c:");

            int c = stdIn.nextInt();

             

            System.out.println("你输入的a、b、c为:"+a+"、"+b+"、"+c);

            System.out.println("三数之和为:"+(a+b+c));

            System.out.println("三数之平均数为:"+((a+b+c)/3));

        } catch (Exception e) {

            e.printStackTrace();

        } finally {

            if (stdIn != null) {

                stdIn.close();

            }

        }

    }

}

 

    

2-3

复制代码

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

package com.finersoft.chap02.homework;

 

import java.util.Scanner;

 

/**

 * 名称:作业2-3

 * 说明:显示键盘输入的数字。

 * 

 * @author Finersoft

 * @date 2018年3月23日

 */

public class Ex0203 {

    public static void main(String[] args) {

        Scanner stdIn = new Scanner(System.in);

 

        try {

            System.out.print("请输入整数值:");

            int a = stdIn.nextInt();

            System.out.println("你输入的是:" + a+"。");

        } catch (Exception e) {

            e.printStackTrace();

        } finally {

            if (stdIn != null) {

                stdIn.close();

            }

        }

    }

}

 

    

2-4

复制代码

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

package com.finersoft.chap02.homework;

 

import java.util.Scanner;

 

/**

 * 名称:作业2-4

 * 说明:对键盘输入的数字加10输出,对键盘输入的数字减10再输出 。

 * @author Finersoft

 * @date 2018年3月23日

 */

public class Ex0204 {

    public static void main(String[] args) {

        Scanner stdIn = new Scanner(System.in);

 

        try {

            System.out.print("请输入整数值:");

            int a = stdIn.nextInt();

            System.out.println("加10之后的值是:" + (a+10)+"。");

            System.out.println("减10之后的值是:" + (a-10)+"。");

        } catch (Exception e) {

            e.printStackTrace();

        } finally {

            if (stdIn != null) {

                stdIn.close();

            }

        }

    }

}

 

    

2-5

复制代码

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

package com.finersoft.chap02.homework;

 

import java.util.Scanner;

 

/**

 * 名称:作业2-5

 * 说明:编写一个程序对两个浮点数赋值,并计算合计值和平均值。

 * 

 * @author Finersoft

 * @date 2018年3月23日

 */

public class Ex0205 {

    public static void main(String[] args) {

        Scanner stdIn = new Scanner(System.in);

 

        try {

            System.out.println("本程序用于输入两个浮点数,并输出总计和平均值。");

            System.out.print("请输入浮点数值a:");

            double a = stdIn.nextDouble();

            System.out.print("请输入浮点数值b:");

            double b = stdIn.nextDouble();

             

            System.out.println("你输入的a、b为:"+a+"、"+b);

            System.out.println("两数之和为:"+(a+b));

            System.out.println("两数之平均数为:"+((a+b)/2));

        } catch (Exception e) {

            e.printStackTrace();

        } finally {

            if (stdIn != null) {

                stdIn.close();

            }

        }

    }

}

 

    

2-6

复制代码

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

package com.finersoft.chap02.homework;

 

import java.util.Scanner;

 

/**

 * 名称:作业2-6

 * 说明:编写一个程序接收三角形的底边长和高,并输出三角形的面积。

 * 

 * @author Finersoft

 * @date 2018年3月23日

 */

public class Ex0206 {

    public static void main(String[] args) {

        Scanner stdIn = new Scanner(System.in);

 

        try {

            System.out.println("本程序用于接收三角形的底边长和高,并输出三角形的面积。");

            System.out.print("请输入三角形的底a:");

            double a = stdIn.nextDouble();

            System.out.print("请输入三角形的高b:");

            double b = stdIn.nextDouble();

 

            System.out.println("你输入的底(a)、高(b)为:" + a + "、" + b);

 

            System.out.println("三角形的面积为(底*高/2,a*b/2):" + (a * b / 2));

        } catch (Exception e) {

            e.printStackTrace();

        } finally {

            if (stdIn != null) {

                stdIn.close();

            }

        }

    }

}

 

    

2-7

复制代码

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

package com.finersoft.chap02.homework;

 

import java.util.Random;

 

/**

 * 名称:作业2-7

 * 说明:随机数:生成1到9中一个值,生成-9到-1中的一个值,显示10到99中的一个值。

 * 

 * @author Finersoft

 * @date 2018年3月23日

 */

public class Ex0207 {

    public static void main(String[] args) {

        Random rand = new Random();

        //rand.nextInt的值域[0,n),所以左右取极限

        // [1,9]=[1,10) = [0+1,9+1)

        System.out.println("随机一位正整数:" + (rand.nextInt(9) + 1) + "。");

        // 上面乘以-1

        System.out.println("随机一位负整数:" + ((rand.nextInt(9) + 1) * -1) + "。");

        // [10,99]=[10,100) = [0+10,90+10)

        System.out.println("随机两位正整数:" + (rand.nextInt(90) + 10) + "。");

    }

}

 

    

2-8

复制代码

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

package com.finersoft.chap02.homework;

 

import java.util.Random;

import java.util.Scanner;

 

/**

 * 名称:作业2-8

 * 说明:输入一个整数,显示这个整数前后5个数范围内的随机数

 * 

 * @author Finersoft

 * @date 2018年3月23日

 */

public class Ex0208 {

    public static void main(String[] args) {

        Scanner stdIn = new Scanner(System.in);

        try {

            System.out.println("本程序用于输入一个整数,显示这个整数前后5个数范围内的随机数。");

            System.out.print("请输入整数值a:");

            int a = stdIn.nextInt();

            Random rand = new Random();

            // a的前后5个数,包括a自己,就是11个数,所以随机数肯定是11个,开区间定义如下 [0,11)

            // 怎么用0-10和a来表示a的前后5个数?

            // 把a-5再加上随机数[0,11)应该就可以了。

            // 最小 a-5+0

            // 最大a-5+10

            // 哎,倒指头算出来的公式

            System.out.println("输入数前后五个数以内的随机数可能为:" + (a -5+ rand.nextInt(10)));

        } catch (Exception e) {

            e.printStackTrace();

        } finally {

            if (stdIn != null) {

                stdIn.close();

            }

        }

    }

}

 

    

2-9

复制代码

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

package com.finersoft.chap02.homework;

 

import java.util.Random;

 

/**

 * 名称:作业2-9

 * 说明:随机数:生成0.0到1.0中一个值,生成0.0到10.0中的一个值,显示-1.0到1.0中的一个值。

 * @author Finersoft

 * @date 2018年3月23日

 */

public class Ex0209 {

    public static void main(String[] args) {

        Random rand = new Random();

        //rand.nextDouble的值域[0.0,1.0),所以左右取极限

        // [0.0,1.0)

        System.out.println("随机大于等于0小于1数:" + (rand.nextDouble())+ "。");

        // 上面乘以10

        System.out.println("随机大于等于0小于10数:" + (rand.nextDouble()*10)+ "。");

        // [0.0,1.0)*2-1.0

        System.out.println("随机大于等于-1小于1数:" + (rand.nextDouble()*2-1)+ "。");

    }

}

 

    

2-10


复制代码

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

package com.finersoft.chap02.homework;

 

import java.util.Scanner;

 

/**

 * 名称:作业2-10

 * 说明:用键盘分两次输入你的姓和名,在程序中输出打招呼

 * 

 * @author Finersoft

 * @date 2018年3月23日

 */

public class Ex0210 {

    public static void main(String[] args) {

        Scanner stdIn = new Scanner(System.in);

 

        try {

            System.out.print("您的姓是:");

            // 读入1行字符串

            String s1 = stdIn.nextLine();

            System.out.print("您的名是:");

            // 读入1行字符串

            String s2 = stdIn.nextLine();

            // 显示

            System.out.println("你好" + s1+s2 + "先生。");

        } catch (Exception e) {

            e.printStackTrace();

        } finally {

            if (stdIn != null) {

                stdIn.close();

            }

        }

    }

}

 

    

复制代码

1

2

3

您的姓是:Finer

您的名是:Soft

你好FinerSoft先生。


发布时间:2020年07月05日
用户头像
我来说两句…
共 1 条评论
蛮哥 中南大学·2022届
超棒!
2020年09月22日 回复