第5节 数据类型转换

  day02_01_数据类型转换_自动转换

  day02_02_数据类型转换_强制转换

  day02_03_数据类型转换_注意事项

  day02_04_ASCII编码表

第6节 运算符

  day02_05_算术运算符_四则与取模运算

  day02_06_算术运算符_加号的多种用法

  day02_07_算术运算符_自增自减运算符

  day02_08_赋值运算符

  day02_09_比较运算符

  day02_10_逻辑运算符

  day02_11_三元运算符

第7节 方法入门

  day02_12_方法入门_概念引入

  day02_13_方法入门_方法的定义

  day02_14_方法入门_方法的调用

第8节 JDK9新特性-Jshell

  day02_15_JDK9的JShell简单使用

  day02_16_编译器的两点优化

  第9节 选择结构-if语句-switch语句

  day03_01_流程概述与顺序结构

  day03_02_选择结构_单if语句

  day03_03_选择结构_标准if-else语句

  day03_04_选择结构_扩展if-else语句

  day03_05_练习_用if语句实现考试成绩划分

  day03_06_练习_用if语句替换三元运算符

  day03_07_选择结构_标准的switch语句

  day03_08_选择结构_穿透的switch语

第10节 循环结构-for-while-do..while

  day03_09_循环结构_循环概述与基本组成部分

  day03_10_循环结构_for循环

  day03_11_循环结构_while循环

  day03_12_循环结构_do-while循环

  day03_13_练习_用循环求出1-100之间的偶数和

  day03_14_三种循环的区别

  day03_15_循环控制_break语句

  day03_16_循环控制_continue语句

  day03_17_死循环

  day03_18_循环嵌套

数据类型转换

/*
当数据类型不一样时,将会发生数据类型转换。 自动类型转换(隐式)
1. 特点:代码不需要进行特殊处理,自动完成。
2. 规则:数据范围从小到大。 强制类型转换(显式)
*/
public class Demo01DataType {
public static void main(String[] args) {
System.out.println(1024); // 这就是一个整数,默认就是int类型
System.out.println(3.14); // 这就是一个浮点数,默认就是double类型 // 左边是long类型,右边是默认的int类型,左右不一样
// 一个等号代表赋值,将右侧的int常量,交给左侧的long变量进行存储
// int --> long,符合了数据范围从小到大的要求
// 这一行代码发生了自动类型转换。
long num1 = 100;
System.out.println(num1); // 100 // 左边是double类型,右边是float类型,左右不一样
// float --> double,符合从小到大的规则
// 也发生了自动类型转换
double num2 = 2.5F;
System.out.println(num2); // 2.5 // 左边是float类型,右边是long类型,左右不一样
// long --> float,范围是float更大一些,符合从小到大的规则
// 也发生了自动类型转换
float num3 = 30L;
System.out.println(num3); // 30.0
}
}

  

/*
强制类型转换
1. 特点:代码需要进行特殊的格式处理,不能自动完成。
2. 格式:范围小的类型 范围小的变量名 = (范围小的类型) 原本范围大的数据; 注意事项:
1. 强制类型转换一般不推荐使用,因为有可能发生精度损失、数据溢出。
2. byte/short/char这三种类型都可以发生数学运算,例如加法“+”.
3. byte/short/char这三种类型在运算的时候,都会被首先提升成为int类型,然后再计算。
4. boolean类型不能发生数据类型转换
*/
public class Demo02DataType {
public static void main(String[] args) {
// 左边是int类型,右边是long类型,不一样
// long --> int,不是从小到大
// 不能发生自动类型转换!
// 格式:范围小的类型 范围小的变量名 = (范围小的类型) 原本范围大的数据;
int num = (int) 100L;
System.out.println(num); // long强制转换成为int类型
int num2 = (int) 6000000000L;
System.out.println(num2); // 1705032704 // double --> int,强制类型转换
int num3 = (int) 3.99;
System.out.println(num3); // 3,这并不是四舍五入,所有的小数位都会被舍弃掉 char zifu1 = 'A'; // 这是一个字符型变量,里面是大写字母A
System.out.println(zifu1 + 1); // 66,也就是大写字母A被当做65进行处理
// 计算机的底层会用一个数字(二进制)来代表字符A,就是65
// 一旦char类型进行了数学运算,那么字符就会按照一定的规则翻译成为一个数字 byte num4 = 40; // 注意!右侧的数值大小不能超过左侧的类型范围
byte num5 = 50;
// byte + byte --> int + int --> int
int result1 = num4 + num5;
System.out.println(result1); // 90 short num6 = 60;
// byte + short --> int + int --> int
// int强制转换为short:注意必须保证逻辑上真实大小本来就没有超过short范围,否则会发生数据溢出
short result2 = (short) (num4 + num6);
System.out.println(result2); // 100
}
}

  

 1 /*
2 数字和字符的对照关系表(编码表):
3
4 ASCII码表:American Standard Code for Information Interchange,美国信息交换标准代码。
5 Unicode码表:万国码。也是数字和符号的对照关系,开头0-127部分和ASCII完全一样,但是从128开始包含有更多字符。
6
7 48 - '0'
8 65 - 'A'
9 97 - 'a'
10 */
11 public class Demo03DataTypeChar {
12 public static void main(String[] args) {
13 char zifu1 = '1';
14 System.out.println(zifu1 + 0); // 49
15
16 char zifu2 = 'A'; // 其实底层保存的是65数字
17
18 char zifu3 = 'c';
19 // 左侧是int类型,右边是char类型,
20 // char --> int,确实是从小到大
21 // 发生了自动类型转换
22 int num = zifu3;
23 System.out.println(num); // 99
24
25 char zifu4 = '中'; // 正确写法
26 System.out.println(zifu4 + 0); // 20013
27 }
28 }

  

 1 /*
2 运算符:进行特定操作的符号。例如:+
3 表达式:用运算符连起来的式子叫做表达式。例如:20 + 5。又例如:a + b
4
5 四则运算:
6 加:+
7 减:-
8 乘:*
9 除:/
10
11 取模(取余数):%
12
13 首先计算得到表达式的结果,然后再打印输出这个结果。
14 复习一下小学一年级的除法公式:
15 被除数 / 除数 = 商 ... 余数
16
17 对于一个整数的表达式来说,除法用的是整除,整数除以整数,结果仍然是整数。只看商,不看余数。
18 只有对于整数的除法来说,取模运算符才有余数的意义。
19
20 注意事项:
21 1. 一旦运算当中有不同类型的数据,那么结果将会是数据类型范围大的那种。
22 */
23 public class Demo04Operator {
24 public static void main(String[] args) {
25 // 两个常量之间可以进行数学运算
26 System.out.println(20 + 30);
27
28 // 两个变量之间也可以进行数学运算
29 int a = 20;
30 int b = 30;
31 System.out.println(a - b); // -10
32
33 // 变量和常量之间可以混合使用
34 System.out.println(a * 10); // 200
35
36 int x = 10;
37 int y = 3;
38
39 int result1 = x / y;
40 System.out.println(result1); // 3
41
42 int result2 = x % y;
43 System.out.println(result2); // 余数,模,1
44
45 // int + double --> double + double --> double
46 double result3 = x + 2.5;
47 System.out.println(result3); // 12.5
48 }
49 }

1 /*
2 四则运算当中的加号“+”有常见的三种用法:
3
4 1. 对于数值来说,那就是加法。
5 2. 对于字符char类型来说,在计算之前,char会被提升成为int,然后再计算。
6 char类型字符,和int类型数字,之间的对照关系表:ASCII、Unicode
7 3. 对于字符串String(首字母大写,并不是关键字)来说,加号代表字符串连接操作。
8 任何数据类型和字符串进行连接的时候,结果都会变成字符串
9 */
10 public class Demo05Plus {
11 public static void main(String[] args) {
12 // 字符串类型的变量基本使用
13 // 数据类型 变量名称 = 数据值;
14 String str1 = "Hello";
15 System.out.println(str1); // Hello
16
17 System.out.println("Hello" + "World"); // HelloWorld
18
19 String str2 = "Java";
20 // String + int --> String
21 System.out.println(str2 + 20); // Java20
22
23 // 优先级问题
24 // String + int + int
25 // String + int
26 // String
27 System.out.println(str2 + 20 + 30); // Java2030
28
29 System.out.println(str2 + (20 + 30)); // Java50
30 }
31 }

  Demo06Operator

 1 /*
2 自增运算符:++
3 自减运算符:--
4
5 基本含义:让一个变量涨一个数字1,或者让一个变量降一个数字1
6 使用格式:写在变量名称之前,或者写在变量名称之后。例如:++num,也可以num++
7 使用方式:
8 1. 单独使用:不和其他任何操作混合,自己独立成为一个步骤。
9 2. 混合使用:和其他操作混合,例如与赋值混合,或者与打印操作混合,等。
10 使用区别:
11 1. 在单独使用的时候,前++和后++没有任何区别。也就是:++num;和num++;是完全一样的。
12 2. 在混合的时候,有【重大区别】
13 A. 如果是【前++】,那么变量【立刻马上+1】,然后拿着结果进行使用。 【先加后用】
14 B. 如果是【后++】,那么首先使用变量本来的数值,【然后再让变量+1】。 【先用后加】
15
16 注意事项:
17 只有变量才能使用自增、自减运算符。常量不可发生改变,所以不能用。
18 */
19 public class Demo06Operator {
20 public static void main(String[] args) {
21 int num1 = 10;
22 System.out.println(num1); // 10
23 ++num1; // 单独使用,前++
24 System.out.println(num1); // 11
25 num1++; // 单独使用,后++
26 System.out.println(num1); // 12
27 System.out.println("=================");
28
29 // 与打印操作混合的时候
30 int num2 = 20;
31 // 混合使用,先++,变量立刻马上变成21,然后打印结果21
32 System.out.println(++num2); // 21
33 System.out.println(num2); // 21
34 System.out.println("=================");
35
36 int num3 = 30;
37 // 混合使用,后++,首先使用变量本来的30,然后再让变量+1得到31
38 System.out.println(num3++); // 30
39 System.out.println(num3); // 31
40 System.out.println("=================");
41
42 int num4 = 40;
43 // 和赋值操作混合
44 int result1 = --num4; // 混合使用,前--,变量立刻马上-1变成39,然后将结果39交给result1变量
45 System.out.println(result1); // 39
46 System.out.println(num4); // 39
47 System.out.println("=================");
48
49 int num5 = 50;
50 // 混合使用,后--,首先把本来的数字50交给result2,然后我自己再-1变成49
51 int result2 = num5--;
52 System.out.println(result2); // 50
53 System.out.println(num5); // 49
54 System.out.println("=================");
55
56 int x = 10;
57 int y = 20;
58 // 11 + 20 = 31
59 int result3 = ++x + y--;
60 System.out.println(result3); // 31
61 System.out.println(x); // 11
62 System.out.println(y); // 19
63
64 // 30++; // 错误写法!常量不可以使用++或者--
65 }
66 }

  

/*
赋值运算符分为: 基本赋值运算符:就是一个等号“=”,代表将右侧的数据交给左侧的变量。
int a = 30; 复合赋值运算符:
+= a += 3 相当于 a = a + 3
-= b -= 4 相当于 b = b - 4
*= c *= 5 相当于 c = c * 5
/= d /= 6 相当于 d = d / 6
%= e %= 7 相当于 e = e % 7 注意事项:
1. 只有变量才能使用赋值运算符,常量不能进行赋值。
2. 复合赋值运算符其中隐含了一个强制类型转换。
*/
public class Demo07Operator {
public static void main(String[] args) {
int a = 10;
// 按照公式进行翻译:a = a + 5
// a = 10 + 5;
// a = 15;
// a本来是10,现在重新赋值得到15
a += 5;
System.out.println(a); // 15 int x = 10;
// x = x % 3;
// x = 10 % 3;
// x = 1;
// x本来是10,现在重新赋值得到1
x %= 3;
System.out.println(x); // 1 // 50 = 30; // 常量不能进行赋值,不能写在赋值运算符的左边。错误写法! byte num = 30;
// num = num + 5;
// num = byte + int
// num = int + int
// num = int
// num = (byte) int
num += 5;
System.out.println(num); // 35
}
}

  

 1 /*
2 比较运算符:
3 大于: >
4 小于: <
5 大于等于: >=
6 小于等于: <=
7 相等: == 【两个等号连写才是相等,一个等号代表的是赋值】
8 不相等: !=
9
10 注意事项:
11 1. 比较运算符的结果一定是一个boolean值,成立就是true,不成立就是false
12 2. 如果进行多次判断,不能连着写。
13 数学当中的写法,例如:1 < x < 3
14 程序当中【不允许】这种写法。
15 */
16 public class Demo08Operator {
17 public static void main(String[] args) {
18 System.out.println(10 > 5); // true
19 int num1 = 10;
20 int num2 = 12;
21 System.out.println(num1 < num2); // true
22 System.out.println(num2 >= 100); // false
23 System.out.println(num2 <= 100); // true
24 System.out.println(num2 <= 12); // true
25 System.out.println("===============");
26
27 System.out.println(10 == 10); // true
28 System.out.println(20 != 25); // true
29 System.out.println(20 != 20); // false
30
31 int x = 2;
32 // System.out.println(1 < x < 3); // 错误写法!编译报错!不能连着写。
33 }
34 }

  Demo09Logic

 1 /*
2 与(并且) && 全都是true,才是true;否则就是false
3 或(或者) || 至少一个是true,就是true;全都是false,才是false
4 非(取反) ! 本来是true,变成false;本来是false,变成true
5
6 与“&&”,或“||”,具有短路效果:如果根据左边已经可以判断得到最终结果,那么右边的代码将不再执行,从而节省一定的性能。
7
8 注意事项:
9 1. 逻辑运算符只能用于boolean值。
10 2. 与、或需要左右各自有一个boolean值,但是取反只要有唯一的一个boolean值即可。
11 3. 与、或两种运算符,如果有多个条件,可以连续写。
12 两个条件:条件A && 条件B
13 多个条件:条件A && 条件B && 条件C
14
15 TIPS:
16 对于1 < x < 3的情况,应该拆成两个部分,然后使用与运算符连接起来:
17 int x = 2;
18 1 < x && x < 3
19 */
20 public class Demo09Logic {
21 public static void main(String[] args) {
22 System.out.println(true && false); // false
23 // true && true --> true
24 System.out.println(3 < 4 && 10 > 5); // true
25 System.out.println("============");
26
27 System.out.println(true || false); // true
28 System.out.println(true || true); // true
29 System.out.println(false || false); // false
30 System.out.println("============");
31
32 System.out.println(true); // true
33 System.out.println(!true); // false
34 System.out.println("============");
35
36 int a = 10;
37 // false && ...
38 System.out.println(3 > 4 && ++a < 100); // false
39 System.out.println(a); // 10
40 System.out.println("============");
41
42 int b = 20;
43 // true || ...
44 System.out.println(3 < 4 || ++b < 100); // true
45 System.out.println(b); // 20
46 }
47 }

  Demo10Operator

 1 /*
2 一元运算符:只需要一个数据就可以进行操作的运算符。例如:取反!、自增++、自减--
3 二元运算符:需要两个数据才可以进行操作的运算符。例如:加法+、赋值=
4 三元运算符:需要三个数据才可以进行操作的运算符。
5
6 格式:
7 数据类型 变量名称 = 条件判断 ? 表达式A : 表达式B;
8
9 流程:
10 首先判断条件是否成立:
11 如果成立为true,那么将表达式A的值赋值给左侧的变量;
12 如果不成立为false,那么将表达式B的值赋值给左侧的变量;
13 二者选其一。
14
15 注意事项:
16 1. 必须同时保证表达式A和表达式B都符合左侧数据类型的要求。
17 2. 三元运算符的结果必须被使用。
18 */
19 public class Demo10Operator {
20 public static void main(String[] args) {
21 int a = 10;
22 int b = 20;
23
24 // 数据类型 变量名称 = 条件判断 ? 表达式A : 表达式B;
25 // 判断a > b是否成立,如果成立将a的值赋值给max;如果不成立将b的值赋值给max。二者选其一
26 int max = a > b ? a : b; // 最大值的变量
27 System.out.println("最大值:" + max); // 20
28
29 // int result = 3 > 4 ? 2.5 : 10; // 错误写法!
30
31 System.out.println(a > b ? a : b); // 正确写法!
32
33 // a > b ? a : b; // 错误写法!
34 }
35 }

  Demo11Method

/*
定义一个方法的格式:
public static void 方法名称() {
方法体
} 方法名称的命名规则和变量一样,使用小驼峰。
方法体:也就是大括号当中可以包含任意条语句。 注意事项:
1. 方法定义的先后顺序无所谓。
2. 方法的定义不能产生嵌套包含关系。
3. 方法定义好了之后,不会执行的。如果要想执行,一定要进行方法的【调用】。 如何调用方法,格式: 方法名称();
*/
public class Demo11Method { public static void main(String[] args) {
farmer(); // 调用农民的方法
seller(); // 调用小商贩的方法
cook(); // 调用厨子的方法
me(); // 调用我自己的方法
} // 厨子
public static void cook() {
System.out.println("洗菜");
System.out.println("切菜");
System.out.println("炒菜");
System.out.println("装盘");
} // 我
public static void me() {
System.out.println("吃");
} // 小商贩
public static void seller() {
System.out.println("运输到农贸市场");
System.out.println("抬高价格");
System.out.println("吆喝");
System.out.println("卖给厨子");
} // 农民伯伯
public static void farmer() {
System.out.println("播种");
System.out.println("浇水");
System.out.println("施肥");
System.out.println("除虫");
System.out.println("收割");
System.out.println("卖给小商贩");
}
}

  注意点

  Demo12Notice

 1 /*
2 对于byte/short/char三种类型来说,如果右侧赋值的数值没有超过范围,
3 那么javac编译器将会自动隐含地为我们补上一个(byte)(short)(char)。
4
5 1. 如果没有超过左侧的范围,编译器补上强转。
6 2. 如果右侧超过了左侧范围,那么直接编译器报错。
7 */
8 public class Demo12Notice {
9 public static void main(String[] args) {
10 // 右侧确实是一个int数字,但是没有超过左侧的范围,就是正确的。
11 // int --> byte,不是自动类型转换
12 byte num1 = /*(byte)*/ 30; // 右侧没有超过左侧的范围
13 System.out.println(num1); // 30
14
15 // byte num2 = 128; // 右侧超过了左侧的范围
16
17 // int --> char,没有超过范围
18 // 编译器将会自动补上一个隐含的(char)
19 char zifu = /*(char)*/ 65;
20 System.out.println(zifu); // A
21 }
22 }

  Demo13Notice

 1 /*
2 在给变量进行赋值的时候,如果右侧的表达式当中全都是常量,没有任何变量,
3 那么编译器javac将会直接将若干个常量表达式计算得到结果。
4 short result = 5 + 8; // 等号右边全都是常量,没有任何变量参与运算
5 编译之后,得到的.class字节码文件当中相当于【直接就是】:
6 short result = 13;
7 右侧的常量结果数值,没有超过左侧范围,所以正确。
8
9 这称为“编译器的常量优化”。
10
11 但是注意:一旦表达式当中有变量参与,那么就不能进行这种优化了。
12 */
13 public class Demo13Notice {
14 public static void main(String[] args) {
15 short num1 = 10; // 正确写法,右侧没有超过左侧的范围,
16
17 short a = 5;
18 short b = 8;
19 // short + short --> int + int --> int
20 // short result = a + b; // 错误写法!左侧需要是int类型
21
22 // 右侧不用变量,而是采用常量,而且只有两个常量,没有别人
23 short result = 5 + 8;
24 System.out.println(result);
25
26 short result2 = 5 + a + 8; // 18
27 }
28 }

  day02_15_JDK9的JShell简单使用

  day02_16_编译器的两点优化

1 // 顺序结构
2 public class Demo01Sequence {
3 public static void main(String[] args) {
4 System.out.println("今天天气不错");
5 System.out.println("挺风和日丽的");
6 System.out.println("我们下午没课");
7 System.out.println("这的确挺爽的");
8 }
9 }

    单if语句

// 单if语句
public class Demo02If {
public static void main(String[] args) {
System.out.println("今天天气不错,正在压马路……突然发现一个快乐的地方:网吧");
int age = 19;
if (age >= 18) {
System.out.println("进入网吧,开始high!");
System.out.println("遇到了一群猪队友,开始骂街。");
System.out.println("感觉不爽,结账走人。");
}
System.out.println("回家吃饭");
}
}
 1 // 标准的if-else语句
2 public class Demo03IfElse {
3 public static void main(String[] args) {
4 int num = 666;
5
6 if (num % 2 == 0) { // 如果除以2能够余数为0,说明是偶数
7 System.out.println("偶数");
8 } else {
9 System.out.println("奇数");
10 }
11 }
12 }
 1 // x和y的关系满足如下:
2 // 如果x >= 3,那么y = 2x + 1;
3 // 如果-1 < x < 3,那么y = 2x;
4 // 如果x <= -1,那么y = 2x – 1;
5 public class Demo04IfElseExt {
6 public static void main(String[] args) {
7 int x = -10;
8 int y;
9 if (x >= 3) {
10 y = 2 * x + 1;
11 } else if (-1 < x && x < 3) {
12 y = 2 * x;
13 } else {
14 y = 2 * x - 1;
15 }
16 System.out.println("结果是:" + y);
17 }
18 }
public class Demo05IfElsePractise {
public static void main(String[] args) {
int score = 120;
if (score >= 90 && score <= 100) {
System.out.println("优秀");
} else if (score >= 80 && score < 90) {
System.out.println("好");
} else if (score >= 70 && score < 80) {
System.out.println("良");
} else if (score >= 60 && score < 70) {
System.out.println("及格");
} else if (score >= 0 && score < 60) {
System.out.println("不及格");
} else { // 单独处理边界之外的不合理情况
System.out.println("数据错误");
}
}
}
// 题目:使用三元运算符和标准的if-else语句分别实现:取两个数字当中的最大值
public class Demo06Max {
public static void main(String[] args) {
int a = 105;
int b = 20; // 首先使用三元运算符
// int max = a > b ? a : b; // 使用今天的if语句
int max;
if (a > b) {
max = a;
} else {
max = b;
} System.out.println("最大值:" + max);
}
}
 1 public class Demo07Switch {
2 public static void main(String[] args) {
3 int num = 10;
4
5 switch (num) {
6 case 1:
7 System.out.println("星期一");
8 break;
9 case 2:
10 System.out.println("星期二");
11 break;
12 case 3:
13 System.out.println("星期三");
14 break;
15 case 4:
16 System.out.println("星期四");
17 break;
18 case 5:
19 System.out.println("星期五");
20 break;
21 case 6:
22 System.out.println("星期六");
23 break;
24 case 7:
25 System.out.println("星期日");
26 break;
27 default:
28 System.out.println("数据不合理");
29 break; // 最后一个break语句可以省略,但是强烈推荐不要省略
30 }
31 }
32 }
 1 /*
2 switch语句使用的注意事项:
3
4 1. 多个case后面的数值不可以重复。
5
6 2. switch后面小括号当中只能是下列数据类型:
7 基本数据类型:byte/short/char/int
8 引用数据类型:String字符串、enum枚举
9
10 3. switch语句格式可以很灵活:前后顺序可以颠倒,而且break语句还可以省略。
11 “匹配哪一个case就从哪一个位置向下执行,直到遇到了break或者整体结束为止。”
12 */
13 public class Demo08SwitchNotice {
14 public static void main(String[] args) {
15 int num = 2;
16 switch (num) {
17 case 1:
18 System.out.println("你好");
19 break;
20 case 2:
21 System.out.println("我好");
22 // break;
23 case 3:
24 System.out.println("大家好");
25 break;
26 default:
27 System.out.println("他好,我也好。");
28 break;
29 } // switch
30 }
31 }
 1 /*
2 循环结构的基本组成部分,一般可以分成四部分:
3
4 1. 初始化语句:在循环开始最初执行,而且只做唯一一次。
5 2. 条件判断:如果成立,则循环继续;如果不成立,则循环退出。
6 3. 循环体:重复要做的事情内容,若干行语句。
7 4. 步进语句:每次循环之后都要进行的扫尾工作,每次循环结束之后都要执行一次。
8 */
9 public class Demo09For {
10 public static void main(String[] args) {
11 for (int i = 1; i <= 100; i++) {
12 System.out.println("我错啦!原谅我吧!" + i);
13 }
14 System.out.println("程序停止");
15 }
16 }
/*
while循环有一个标准格式,还有一个扩展格式。 标准格式:
while (条件判断) {
循环体
} 扩展格式: 初始化语句;
while (条件判断) {
循环体;
步进语句;
}
*/
public class Demo10While {
public static void main(String[] args) {
for (int i = 1; i <= 10; i++) {
System.out.println("我错啦!" + i);
}
System.out.println("================="); int i = 1; // 1. 初始化语句
while (i <= 10) { // 2. 条件判断
System.out.println("我错啦!" + i); // 3. 循环体
i++; // 4. 步进语句
}
}
}
 1 /*
2 do-while循环的标准格式:
3
4 do {
5 循环体
6 } while (条件判断);
7
8 扩展格式:
9
10 初始化语句
11 do {
12 循环体
13 步进语句
14 } while (条件判断);
15 */
16 public class Demo11DoWhile {
17 public static void main(String[] args) {
18 for (int i = 1; i <= 10; i++) {
19 System.out.println("原谅你啦!起来吧!地上怪凉!" + i);
20 }
21 System.out.println("===============");
22
23 int i = 1; // 1. 初始化语句
24 do {
25 System.out.println("原谅你啦!起来吧!地上怪凉!" + i); // 3. 循环体
26 i++; // 4. 步进语句
27 } while (i <= 10); // 2. 条件判断
28 }
29 }
/*
题目:求出1-100之间的偶数和。 思路:
1. 既然范围已经确定了是1到100之间,那么我就从1、2、3……一直到100这么多数字一个一个进行检查。
2. 总共有100个数字,并非所有数字都能用。必须要是偶数才能用,判断(if语句)偶数:num % 2 == 0
3. 需要一个变量,用来进行累加操作。也就好比是一个存钱罐。
*/
public class Demo12HundredSum {
public static void main(String[] args) {
int sum = 0; // 用来累加的存钱罐 for (int i = 1; i <= 100; i++) {
if (i % 2 == 0) { // 如果是偶数
sum += i;
}
}
System.out.println("结果是:" + sum);
}
}
 1 /*
2 三种循环的区别。
3
4 1. 如果条件判断从来没有满足过,那么for循环和while循环将会执行0次,但是do-while循环会执行至少一次。
5 2. for循环的变量在小括号当中定义,只有循环内部才可以使用。while循环和do-while循环初始化语句本来就在外面,所以出来循环之后还可以继续使用。
6 */
7 public class Demo13LoopDifference {
8 public static void main(String[] args) {
9 for (int i = 1; i < 0; i++) {
10 System.out.println("Hello");
11 }
12 // System.out.println(i); // 这一行是错误写法!因为变量i定义在for循环小括号内,只有for循环自己才能用。
13 System.out.println("================");
14
15 int i = 1;
16 do {
17 System.out.println("World");
18 i++;
19 } while (i < 0);
20 // 现在已经超出了do-while循环的范围,我们仍然可以使用变量i
21 System.out.println(i); // 2
22 }
23 }
 1 /*
2 break关键字的用法有常见的两种:
3
4 1. 可以用在switch语句当中,一旦执行,整个switch语句立刻结束。
5 2. 还可以用在循环语句当中,一旦执行,整个循环语句立刻结束。打断循环。
6
7 关于循环的选择,有一个小建议:
8 凡是次数确定的场景多用for循环;否则多用while循环。
9 */
10 public class Demo14Break {
11 public static void main(String[] args) {
12 for (int i = 1; i <= 10; i++) {
13 // 如果希望从第4次开始,后续全都不要了,就要打断循环
14 if (i == 4) { // 如果当前是第4次
15 break; // 那么就打断整个循环
16 }
17 System.out.println("Hello" + i);
18 }
19 }
20 }
/*
另一种循环控制语句是continue关键字。
一旦执行,立刻跳过当前次循环剩余内容,马上开始下一次循环。
*/
public class Demo15Continue {
public static void main(String[] args) {
for (int i = 1; i <= 10; i++) {
if (i == 4) { // 如果当前是第4层
continue; // 那么跳过当前次循环,马上开始下一次(第5层)
}
System.out.println(i + "层到了。");
}
}
}
 1 /*
2 永远停不下来的循环,叫做死循环。
3
4 死循环的标准格式:
5 while (true) {
6 循环体
7 }
8 */
9 public class Demo16DeadLoop {
10 public static void main(String[] args) {
11 while (true) {
12 System.out.println("I Love Java!");
13 }
14
15 // System.out.println("Hello");
16 }
17 }
public class Demo17LoopHourAndMinute {
public static void main(String[] args) {
for (int hour = 0; hour < 24; hour++) { // 外层控制小时 for (int minute = 0; minute < 60; minute++) { // 内层控制小时之内的分钟
System.out.println(hour + "点" + minute + "分");
} }
}
}

Java基础语法Day_02-03(数据类型、运算符、方法、循环结构)的更多相关文章

  1. JAVA基础语法:常用功能符以及循环结构和分支结构(转载)

    3.JAVA基础语法:常用功能符以及循环结构和分支结构 1.常用功能符 注释 ("文字"是被注释的部分) //文字 单行注释 /文字/ 多行注释 算术运算符 + - * / / 整 ...

  2. Java基础语法01——变量与运算符

    本文是对Java基础语法的第一部分的学习,包括注释:标识符的命名规则与规范:变量的数据类型分类以及转换:以及六种运算符(算术.赋值.比较.逻辑.三元和位运算符).

  3. Java基础-程序流程控制第二弹(循环结构)

    Java基础-程序流程控制第二弹(循环结构) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 流程控制有三种基本结构:顺序结构,选择结构和循环结构.一个脚本就是顺序结构执行的,选择结 ...

  4. Java基础语法和基本数据类型

    Java基础语法 一个Java程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作. 对象:对象是类的一个实例,有状态(属性)和行为(方法). 类:类是一个模板,他描述一类对象的行为 ...

  5. Java基础语法 - 面向对象 - 类的主方法main方法

    主方法是类的入口点,它指定了程序从何处开始,提供对程序流向的控制.Java编译器通过主方法来执行程序. 主方法的语法如下: /* a.主方法是静态的,如果要直接在主方法中调用其它方法,则该方法必须也是 ...

  6. Java基础语法:基本数据类型

    Java是一种强类型语言,每个变量都必须声明其类型. Java的数据类型 分为两大类:基本类型(primitive type)和引用类型(reference type). Java的所有八种基本类型的 ...

  7. java基础(一)---数据类型&Math方法&强制转换

    数据类型及各种Math类方法 public class HelloWorld { public static void main(String args[]) { //各种数据类型的熟悉掌握,强制类型 ...

  8. Java基础语法(方法)

    Java基础语法 今日内容介绍 u 方法 第1章 方法 1.1 方法概述 在我们的日常生活中,方法可以理解为要做某件事情,而采取的解决办法. 如:小明同学在路边准备坐车来学校学习.这就面临着一件事情( ...

  9. JAVA学习(三):Java基础语法(变量、常量、数据类型、运算符与数据类型转换)

    Java基础语法(变量.常量.数据类型.运算符与数据类型转换) 1.变量 Java中.用户能够通过指定数据类型和标识符来声明变量.其基本的语法为: DataType identifier; 或 Dat ...

随机推荐

  1. 三极管与MOS管主要参数差别及驱动电路基极(栅极)串联电阻选取原则

    三极管与MOS管都常在电路中被当做开关使用,比较起来: 1. 三极管集电极电流IC (一般为mA级别),远小于MOS管ID(一般为A级别),因此MOS管多用在大电流电路中,如电机驱动 2. 三极管耗散 ...

  2. 常见的反爬措施:UA反爬和Cookie反爬

    摘要:为了屏蔽这些垃圾流量,或者为了降低自己服务器压力,避免被爬虫程序影响到正常人类的使用,开发者会研究各种各样的手段,去反爬虫. 本文分享自华为云社区<Python爬虫反爬,你应该从这篇博客开 ...

  3. Kafka学习(一)

    作者:普适极客链接:https://www.zhihu.com/question/53331259/answer/1321992772来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载 ...

  4. eclipse启动指定jvm的版本

    参阅:https://www.eclipse.org/forums/index.php/t/1105435/ https://wiki.eclipse.org/Eclipse.ini#-vm_valu ...

  5. Living Documentation

    Living Documentation Living documentation in legacy systems Living documentation, which comes from t ...

  6. javascript入门教程(二):变量

    大家好,我从今天开始就会正式讲javascript的语法方面.变量 js中的变量一般使用var来声明(es6的let不在本教程讨论范围内),可以用来定义任何种类的变量,如果只对变量进行了定义而没有赋值 ...

  7. 腾讯云+社区开发者大会开启报名,WeGeek 邀你一起聊聊小程序

    刚满 2 岁的微信小程序,正给我们带来一种全新轻便的生活方式. 内测时的青涩还历历在目,到现在,小程序生态已日渐成熟.超过 150 万开发者在这里找到了自己的新天地,打磨出超过 100 万个小程序. ...

  8. .Net Core:Docker无法拉取mcr.microsoft.com相关镜像解决办法

    今天在教同事Docker简单部署Asp.Net Core项目,pull镜像时突然出现下图中的错误: 因为微软在 2018 年五月之后,只会将相关镜像打包发布到 MCR 上.但是 MCR 对国内用户不太 ...

  9. Centos6.9 安装zabbix3.4 过程

    Centos6.9 安装zabbix3.4 过程 1.安装apache httpd 一开始忘记截图(略...) # yun install httpd 完成后,启动httpd服务 # service ...

  10. python if else代码优化

    开发过程遇到一个问题,用户的性别在数据库中存储时并不会用中文表示,数据库使用male.female.other代表男性.女性和其他,可接口传给前段时希望用户的性别是中文,这时就需要转换. 下面这段代码 ...