java基础语法

第一阶段

我把自己的学习笔记用思维导图的方式记录下来,如下图所示:

第二阶段

关于自增的代码,可以发现:前++会先进行自增1,再进行赋值运算;而后++会先进行赋值运算,再进行自增.不管是前++还是后++,变量本身最终会自增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
package com.xiebin.day01;

/**
* @author 谢斌
* @create 2019-10-2019/10/13 14:14
*/
public class AriTest {
public static void main(String[] args) {
int a1 = 10;
int b1 = ++a1;
System.out.println("b1 = " + b1);
System.out.println("a1 = " + a1);

System.out.println("*****************");
int a2 = 10;
int b2 = a2++;
System.out.println("b2 = " + b2);
System.out.println("a2 = " + a2);


}
}
输出结果为:
b1 = 11
a1 = 11
*****************
b2 = 10
a2 = 11

进程已结束,退出代码 0
1
2
3
4
5
6
7
8
9
package com.xiebin.day01;

public class AriTest {
public static void main(String[] args) {
byte b1 = 127;
b1++;
System.out.println("b1 = " + b1);//-128?
}
}

分析:首先byte的范围是-128~127.字节长度为8位,左边是符号位;而127的二进制为 :0111 1111,所以执行 b1++;时,0111 111变为1000 0000,而128的二进制为:1000 0000,最高位为符号位.

第三阶段

这阶段主要是流程控制语句: if语句、switch语句 和循环语句.

通过练习题加强对知识的理解.下面附上代码

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.xiebin.day02;
import java.util.Scanner;
/**
* @author 谢斌
* @create 2019/10/15 8:54
*/
public class exer1 {
public static void main(String[] args) {
/*有3个整数,给出提示信息:
能否创建三角形;两边之和大于第三边 三个条件都要写
如果能构建三角形,提示是直角三角形还是等边三角形等腰三角形还是普通三角形;
最后输出三角形面积;*/
Scanner as = new Scanner(System.in);
System.out.println("请输入第一个整数:");
int a = as.nextInt();
System.out.println("请输入第二个整数");
int b = as.nextInt();
System.out.println("请输入第三个整数");
int c = as.nextInt();
double s = (a + b + c) / 2;
double sr = Math.sqrt(s * (s - a) * (s - b) * (s - c));
if ((a + b) > c && (b + c) > a && (c + a) > b) {
System.out.println("能构建三角形");
if ((a * a + b * b) == c * c || (b * b + c * c) == a * a || (c * c + a * a) == b * b) {
System.out.println("该三角形是直角三角形");
System.out.println("三角形面积 = " + sr);
} else if (a == b && b == c && c == a) {
System.out.println("三角形为等边三角形");
System.out.println("三角形面积 = " + sr);
} else if (a == b || b == c || c == a) {
System.out.println("该三角形是等边三角形");
System.out.println("三角形面积 = " + sr);
}
} else {
System.out.println("不能构建三角形");
}
}
}

求100以内的所有质数

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
package com.xiebin.day3;
/**
* @author 谢斌
* @create 2019-10-2019/10/15 18:34
*/
public class exer3 {
public static void main(String[] args) {
//求100以内的所有质数
/*
* 思路分析:
* 1.首先要明白质数含义:只能被1和他本身整除的数.
* 2.对于某一个数a,可以试着让它除以a-1.....2,如果有任意一次除数为零,这个数a就不是质数.
* 3.借助循环语句.外层循环遍历2-100之间的每一个整数(作为被除数).
* 4.然后在内循环中用从2到它之间的数去除它,如果找到一个能整除它的数,内层循环将立即跳出.
*
*
* */
/*方式一:标识i是否被j除进
*
* */
boolean isFlag = true;
//遍历2-100之间的所有整数(作为被除数)
for (int i = 2; i <= 100; i++) {

//遍历j,j作为除数(2-100)
for (int j = 2; j < i; j++) {
//
if (i % j == 0) {
isFlag = false;
}

}
if (isFlag == true) {
System.out.println("i = " + i);
}
//重置isFlag
isFlag = true;

}
}
}

优化:

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.xiebin.day3;
/**
* @author 谢斌
* @create 2019-10-2019/10/15
*/
public class exer3 {
public static void main(String[] args) {
boolean isFlag = true;
int count = 0;
//遍历2-100之间的所有整数(作为被除数)
for (int i = 2; i <= 100; i++) {

//遍历j,j作为除数(2-100)
//优化二:
for (int j = 2; j <= Math.sqrt(i); j++) {
//
if (i % j == 0) {
isFlag = false;
//优化一:对本身不是质数的自然数有效
break;
}

}
if (isFlag == true) {
// System.out.println("i = " + i);
count++;
}
//重置isFlag
isFlag = true;

}

System.out.println(" count = " + count);
}
}

方式二:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
package com.xiebin.day3;
/**
* @author 谢斌
* @create 2019-10-2019/10/15
*/
public class exer3 {
public static void main(String[] args) {
int count = 0;
boolean isFlag = true;
//遍历2-100之间的所有整数(作为被除数)
label:for (int i = 2; i <= 10000; i++) {
for (int j = 2; j <= Math.sqrt(i); j++) {
if (i % j == 0) {
continue label;
}
}
count++;
}
System.out.println("count = " + count);
}
}
坚持原创技术分享,您的支持将鼓励我继续创作!
-------------本文结束感谢您的阅读-------------
(>看完记得五星好评哦亲<)
0%