【有书共读(第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先生。