第三章 后半部分主要讲了运算符,java在这方面和C和C++差不多。对于复杂的运算java提供了Math类。
下面看点Math的常用方法:
- public class TestMath
- {
- public static void main(String[] args)
- {
- //定义变量a为3.2
- double a = 3.2;
- //求a的5次方,并将计算结果赋为b。
- double b = Math.pow(a , 5);
- //输出b的值
- System.out.println(b);
- //求a的平方根,并将结果赋给c
- double c = Math.sqrt(a);
- //输出c的值
- System.out.println(c);
- //计算随机数,返回一个0~1之间的伪随机数。
- double d = Math.random();
- //输出随机数d的值
- System.out.println(d);
- //求1.57的sin函数值:1.57被当成弧度数
- double e = Math.sin(1.57);
- //输出接近1
- System.out.println(e);
- }
- }
然后讲了位运算:补码,反码,与,或,非等都讲了,搞的像上数字逻辑课。然后讲到“短路”和“非短路”与和或,其实就是当左边满足条件右边还做不做运算的区别,下面看个例子
- public static void main(String[] args) {
- int a=5;
- int b=10;
- if(a>4|b++>10){
- System.out.println(a+" , "+b);
- }
- if(a>4||b++>10){
- System.out.println(a+" , "+b);
- }
- }
大家体会下就知道区别了,下面讲点我们常忘记的,单目运算,赋值运算,三目运算都是从右向左运算的。对于运算符的优先级其实没什么好记的,要记的话也太多,就算记住了不久就又搞不清了,所以用括号来代替利用运算符的优先级。
本章练习
1.定义学生,老师,教师3个类,并生成javadoc
2.用控制台画圆
我先给大家个思路图:
然后是我写的代码,由于是控制台画圆所以不太圆,李刚还真聪明选半径为6这时我也发现是比较圆的,呵呵
- public class Circle {
- public static void main(String[] args) {
- Circle c=new Circle();
- c.drawCircle(6);
- }
- public void drawCircle(int r) {
- for (int i = 0; i <= r; i++) {
- double x = Math.round(Math.sqrt(Math.pow(r, 2) - Math.pow(r - i, 2)));
- for (int j = 0; j < r - x; j++) {
- drawBlank();
- }
- drawStar();
- for (int k = 0; k <=(2 * x); k++) {
- drawBlank();
- }
- drawStar();
- System.out.println(" ");
- }
- for (int i = r-1; i >= 0; i--) {
- double x = Math.round(Math.sqrt(Math.pow(r, 2) - Math.pow(r - i, 2)));
- for (int j = 0; j < r - x; j++) {
- drawBlank();
- }
- drawStar();
- for (int k = 0; k <=(2 * x); k++) {
- drawBlank();
- }
- drawStar();
- System.out.println(" ");
- }
- }
- private void drawBlank() {
- System.out.print(" ");
- }
- private void drawStar() {
- System.out.print("*");
- }
- }