【有书共读(第1期)】《明解Java》笔记:第2章
官方小结:
- 变量可以自由存取数值等数据。需要变量时,赋予其类型和名称,进行声明。
- 在从变量中取出值之前,必须进行初始化或赋值,将值赋给该变量。初始化是在创建变量时赋予初始值,赋值则是将值赋给创建好的变量。
- 变量是在需要时进行声明的。另外,最好在声明中赋上初始值,明确将变量初始化。
- final变量通过初始化或赋值,只赋入一次值。在给常量赋予名称时可以使用该变量。
- 在诸多的类型中,Java语言提供的标准类型是基本类型。
- int型是一种表示整数的整形。
- 像13这样的常量称为整数常量。
- double型是一种表示实数(浮点数)的浮点型。
- 像3.14这样的常量称为浮点型常量。
- 用于表示字符串(字符序列)的是String型。该类型不是基本类型。
- 执行运算的符号是运算符,作为运算对象的表达式则是操作数。运算符根据操作数的个数分为3类:一元运算符、二元运算符、三元运算符。
- 用括号括起来的运算会优先执行。
- 在“字符串+数值”或“数值+字符串”的运算中,数值要转换为字符串之后再进行拼接。
- 读入通过键盘输入的值时使用标准输入流。Scanner类的next…方法用来读取标准输入流中的字符。
- 通过生成随机数,可以创建随机的值。Random类的nexe…方法用来生成随机数。
- 通过“整数/整数”运算得到的商是舍去小数部分后的整数值。
Finersoft的课后作业
2-1
package com.finersoft.chap02.homework;
/**
* 名称:作业2-1<br />
* 说明:
* @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
package com.finersoft.chap02.homework;
import java.util.Scanner;
/**
* 名称:作业2-2 <br />
* 说明:编写一个程序对三个整数赋值,并计算合计值和平均值。
*
* @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
package com.finersoft.chap02.homework;
import java.util.Scanner;
/**
* 名称:作业2-3<br />
* 说明:显示键盘输入的数字。
*
* @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
package com.finersoft.chap02.homework;
import java.util.Scanner;
/**
* 名称:作业2-4<br />
* 说明:对键盘输入的数字加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
package com.finersoft.chap02.homework;
import java.util.Scanner;
/**
* 名称:作业2-5 <br />
* 说明:编写一个程序对两个浮点数赋值,并计算合计值和平均值。
*
* @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
package com.finersoft.chap02.homework;
import java.util.Scanner;
/**
* 名称:作业2-6 <br />
* 说明:编写一个程序接收三角形的底边长和高,并输出三角形的面积。
*
* @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
package com.finersoft.chap02.homework;
import java.util.Random;
/**
* 名称:作业2-7<br />
* 说明:随机数:生成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
package com.finersoft.chap02.homework;
import java.util.Random;
import java.util.Scanner;
/**
* 名称:作业2-8<br/>
* 说明:输入一个整数,显示这个整数前后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
package com.finersoft.chap02.homework;
import java.util.Random;
/**
* 名称:作业2-9<br />
* 说明:随机数:生成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
package com.finersoft.chap02.homework;
import java.util.Scanner;
/**
* 名称:作业2-10<br />
* 说明:用键盘分两次输入你的姓和名,在程序中输出打招呼
*
* @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();
}
}
}
}
您的姓是:Finer 您的名是:Soft 你好FinerSoft先生。
查看22道真题和解析
