1 Java第三课[流程控制]
1 Java第三课[流程控制]
1.1 回顾:
1. 标识符的命名:标识符通常意义上是指 类名,包名,方法名,属性名,普通变量等等.
2. 类命名:每个单词的首字母大写;
3. 变量命名规则:字母数字下划线以及$符号组成,不能以数字开头,不能使用java中的关键字,在同一个作用域中不能重复;有一定的含义,遵循骆驼命名方法。
4. 常量: final 表示的这个变量在运行期,不会发生改变;
Final int PI=3.14; //定义一个常量,π ,值3.14
Final char SEX=’男’; //常量值
5. 数据类型:数据类型决定了一个变量在内存中存储空间的大小;常见(简单 基本)的数据类型:8个,byte,short,int,long,double,float,char,boolean ,每个类型占用的空间大小,数据值得范围: byte : -128~ 127 ;why?
00000000 -> 11111111
6. 不同的类型之间需要转换: 简单类型之间的转换,前提,要求类型要兼容; 强制转换,显式转换; -> int a =(int) 12.3; 自动转换,隐式转换; double d = 12; //12. 0 int n = (int)false;
7. 如何定义变量:
先声明,再赋值:
数据类型 变量名; // int n ; int n1,n2,n3;
变量名= 值; n = 2;
声明和赋值同时进行:
int n = 2;
int n1=1,n2,n3=2;
8. 控制台输入:
导入包:
import java.util.Scanner;
Scanner 对象名 = new Scanner(System.in);
对象名.nextInt(); 对象名.nextFloat(); 对象名.nextDouble(); 对象名.next();
如何从控制台输入一个字符?
对象名.nextChar();
9. 常见的运算符:
算术: + - * / % ,执行的是除法运算,结果是取得余数. 5%3 ->5/3
比较(关系):== != > < >= <=
赋值: = += -=等复合的赋值运算符
比较运算符: ? : ;
逗号: ,
括号: ()
1.2 课堂的默写代码:
输入两个数字,交换二者的值,并输出;
1.3 课后作业讲解:
预习作业: 引用类型,其他的运算符.
代码作业: 给一个5位数(12345),将各个位数的数字取出来,求和输出: 1+2+3+4+5的结果 15
提示:需要用到 %
12345%10 =>5
12345/10=>1234%10=>4
12345/100=>123%10=>3
package day03;
import java.util.Scanner;
public class TestHomeWork {
public static void main(String[] args) {
// TODO Auto-generated method stub
/*
* System.out.println(5/3); // 5/3 ->1 余数2 数学的算法: 1*3 = 3+2 = 5
* System.out.println(5%3); //2
* System.out.println(5.3/2);//如果运算符的左侧或者右侧有一个值为小数,结果为小数 2.65
* System.out.println(5.3%2); //? 2*2 -> 5.3-4= >1.3
*/ Scanner input = new Scanner(System.in);
System.out.println("请输入一个数字(5位数字)");
int n1 = input.nextInt();
// 12345
// 将这个12345拆出来(个位 十 百 千 万)
int g = n1 % 10; // 个 12345%10 => g=5
int s = n1 / 10 % 10;// 十 s=12345/10=>1234%10= 4 s=4
int b = n1 / 100 % 10; // 百 b =3
int q = n1 / 1000 % 10; // 千 q = 2
int w = n1 / 10000; // 万 w=1
int sum = g + s + b + q + w;
System.out.println(n1 + " 各个位数字的和是: " + sum);
}
}
1.4 继续数据类型:
package day03; import java.util.Scanner; public class TestHomeWork { public static void main(String[] args) { // TODO Auto-generated method stub /* * System.out.println(5/3); // 5/3 ->1 余数2 数学的算法: 1*3 = 3+2 = 5 * System.out.println(5%3); //2 * System.out.println(5.3/2);//如果运算符的左侧或者右侧有一个值为小数,结果为小数 2.65 * System.out.println(5.3%2); //? 2*2 -> 5.3-4= >1.3 */ Scanner input = new Scanner(System.in); System.out.println("请输入一个数字(5位数字)"); int n1 = input.nextInt(); // 12345 // 将这个12345拆出来(个位 十 百 千 万) int g = n1 % 10; // 个 12345%10 => g=5 int s = n1 / 10 % 10;// 十 s=12345/10=>1234%10= 4 s=4 int b = n1 / 100 % 10; // 百 b =3 int q = n1 / 1000 % 10; // 千 q = 2 int w = n1 / 10000; // 万 w=1 int sum = g + s + b + q + w; System.out.println(n1 + " 各个位数字的和是: " + sum); } }
引用类型: 类 接口 枚举 注解 数组等
基本数据类型存储在栈中;引用类型存储在堆中;
• 在函数(方法)中定义的基本数据类型变量存储在栈中;
• 引用类型实例的引用(reference)也是存储在栈中;
• 引用类型实例的成员变量,存储在堆中;
String:
String str = new String(“”);
String str = “”;
1.5 其他运算符
1.5.1 ++和--:
(单目)来变量的基础上自加 1或者自减1 : a++ --a ;
无论是再前还是再后,最终的结果一定是+1或者-1;
运算符 |
放在变量前 |
放在变量后 |
++ |
++a ; 先自加,再引用a的值 |
a++ ; 先引用a的值,然后在自加 |
-- |
--a ; 先自减,再引用a的值 |
a-- ;先引用a的值,然后再自减 |
package day03; public class TestOperator { public static void main(String[] args) { // int n = 1; // ++n; // n++; // 最终结果 // System.out.println("n : " + n);//? 2 int n = 1; System.out.println("n : " + n++);// ? 1 输出的时候还是1, 但是输出完成了没这个n就变成了2 System.out.println("n : " + ++n);// ? 3 此时是先自加2+1=>3,然后再输出 } }
1.5.2 关于位运算符:
如何用比较快速的方法得到2的4次方? 比较经典的面试题;
结果16;
2<<3 <<向左移动三位
十进制的2转换为二进制10 > 位运算 10000 ->变成10进制
1.5.3 逻辑运算符
思奇: 女票
长发 | 170cm |
要么长发,要么170cm ,两条件都不成立,则false |
不管是否长发,两个判断都要有 |
|
长发 || 170cm |
要么长发,要么170cm ,两条件都不成立,则false |
如果长发,则170的条件就不判断了,直接结果true ,娶了她 |
|
长发 & 170cm |
长发和170要同时满足,结果才为true |
&表示的非短路,长发要判断,170也要判断 |
|
长发 && 170cm |
长发和170要同时满足,结果true |
&&表示的短路,长发要判断如果为false,170就不判断 |
|
非 !(表达式,boolean变量) !长发 |
取反(!长发) ->非长头发 |
!true ->false !false->true |
package day03;
public class TestOperator {
public static void main(String[] args) {
// int n = 1;
// ++n;
// n++;
// 最终结果
// System.out.println("n : " + n);//? 2
/*
* int n = 1;
*
* System.out.println("n : " + n++);// ? 1 输出的时候还是1, 但是输出完成了没这个n就变成了2
* System.out.println("n : " + ++n);// ? 3 此时是先自加2+1=>3,然后再输出
*/
/*
* int n = 2; System.out.println(2 << 3);
*/
/*
* String fields01 = "长发飘飘"; int height = 170;
*
* // 比较的是字符串是否相同(内容是否相等) System.out.println(fields01.equals("长发飘飘") & height ==
* 170); //& 左侧为true,右侧也为true
*
* System.out.println(fields01.equals("长发") && height == 170);//&&
* 左侧为true,右侧也为true ,此时&&短路运算, 如果左侧为false,则右侧不执行
*/
/*
* int a = 1, b = 2, c = 3; System.out.println(a++ > b++ && --b < c++);
* System.out.println("a: " + a + ", b:" + b + ",c:" + c ); // 2 3 3
*/
//& 非短路的与
/*int a = 1, b = 2, c = 3;
System.out.println(a++ > b++ & --b < c++);
System.out.println("a: " + a + ", b:" + b + ",c:" + c); // 2 2 4,
*/
/*int a = 1, b = 2, c = 3;
System.out.println(a++ > b++ | --b < c++);
System.out.println("a: " + a + ", b:" + b + ",c:" + c); // 2 2 4
*/
int a = 1, b = 2, c = 3;
System.out.println(a++ < b++ || --b < c++);
System.out.println("a: " + a + ", b:" + b + ",c:" + c); //2 3 3
}
}
1.5.4 小题目(逻辑运算符)
package day03; public class TestOperator { public static void main(String[] args) { // int n = 1; // ++n; // n++; // 最终结果 // System.out.println("n : " + n);//? 2 /* * int n = 1; * * System.out.println("n : " + n++);// ? 1 输出的时候还是1, 但是输出完成了没这个n就变成了2 * System.out.println("n : " + ++n);// ? 3 此时是先自加2+1=>3,然后再输出 */ /* * int n = 2; System.out.println(2 << 3); */ /* * String fields01 = "长发飘飘"; int height = 170; * * // 比较的是字符串是否相同(内容是否相等) System.out.println(fields01.equals("长发飘飘") & height == * 170); //& 左侧为true,右侧也为true * * System.out.println(fields01.equals("长发") && height == 170);//&& * 左侧为true,右侧也为true ,此时&&短路运算, 如果左侧为false,则右侧不执行 */ /* * int a = 1, b = 2, c = 3; System.out.println(a++ > b++ && --b < c++); * System.out.println("a: " + a + ", b:" + b + ",c:" + c ); // 2 3 3 */ //& 非短路的与 /*int a = 1, b = 2, c = 3; System.out.println(a++ > b++ & --b < c++); System.out.println("a: " + a + ", b:" + b + ",c:" + c); // 2 2 4, */ /*int a = 1, b = 2, c = 3; System.out.println(a++ > b++ | --b < c++); System.out.println("a: " + a + ", b:" + b + ",c:" + c); // 2 2 4 */ int a = 1, b = 2, c = 3; System.out.println(a++ < b++ || --b < c++); System.out.println("a: " + a + ", b:" + b + ",c:" + c); //2 3 3 } }
String是一个引用类型的变量;
如果引用的目标为null, 那么,java中的是不允许出现对象名.属性或者方法的;
&&: 如果左侧为false,则右侧不执行; false;
& :非短路 左侧为false ,右侧要执行, s.length() ; 此时会出现错误;
1.5.5 运算符小结:
类型分: 赋值运算符(= += -= ….)/算术(+ - * / % ++ --) /逻辑(&& || ! & |)/关系(比较) (> < >= <= != ==) /位运算符(<<)
按照”目” :操作数 a+b => 双目/ a++ ,a – 单目/ 三目: 表达式1? 表达式2:表达式3 ;
1.5.6 课堂题目:
package day003;
/**
* 练习题目讲解
*
* @author Administrator
*
*/
public class Text_Ex01 {
public static void main(String[] args) {
// TODO Auto-generated method stub
// 显示某个10进制数字的8进制和16进制格式
int n = 12;
// 转换为2进制
System.out.println(Integer.toBinaryString(n));
//toHexString 16进制
System.out.println(Integer.toHexString(n));
//o 8进制
System.out.println(Integer.toOctalString(n));
}
}
//A-65 类型转换
int n1 = 65;
System.out.println((char)n1);
题目7有些问题 :m和n是布尔类型;
System.out.println("*******************");
int a, b, c, d;
boolean m = true, n = true;
a = 5;
b = 6;
c = 7;
d = 8;
boolean flag = (m = a++ > --b) && (n = ++c > --d);
System.out.println("flag: " + flag); // false
System.out.println("m :" + m + ", n :" + n); // false true
System.out.println("a :" + a + ", b:" + b + ",c :" + c + ",d:" + d);
//6 5 7 8
1.5.7 运算符-优先级描述
package day003; /** * 练习题目讲解 * * @author Administrator * */ public class Text_Ex01 { public static void main(String[] args) { // TODO Auto-generated method stub // 显示某个10进制数字的8进制和16进制格式 int n = 12; // 转换为2进制 System.out.println(Integer.toBinaryString(n)); //toHexString 16进制 System.out.println(Integer.toHexString(n)); //o 8进制 System.out.println(Integer.toOctalString(n)); } } //A-65 类型转换 int n1 = 65; System.out.println((char)n1); 题目7有些问题 :m和n是布尔类型; System.out.println("*******************"); int a, b, c, d; boolean m = true, n = true; a = 5; b = 6; c = 7; d = 8; boolean flag = (m = a++ > --b) && (n = ++c > --d); System.out.println("flag: " + flag); // false System.out.println("m :" + m + ", n :" + n); // false true System.out.println("a :" + a + ", b:" + b + ",c :" + c + ",d:" + d); //6 5 7 8
1 括号()、[] |
2 正负号+、- |
3 自增自减,非 .++、--、! |
4 乘除,取余*、/、% |
5 加减+、- |
6 移位运算<<、>>、>>> |
7 大小关系>、>=、<、<= |
8 相等关系==、!= |
9 按位与& |
10 按位异或^ [^] |
11 按位或| |
12 逻辑与&& |
13 逻辑或|| |
14 条件运算?: |
15 赋值运算=、+=、-=、*=、/=、%= |
16 位赋值运算&=、|=、<<=、>>=、>>>= |
17 逗号运算符 , |
1.6 流程控制:
1.6.1 条件结构(选择):
If[如果]结构/if-else[否则]结构:
多重if: [多种条件的判断]
嵌套的if: 表达的是一种递进的关系
If(判断语句1)
{
If(判断语句2)
{
}
}
1.6.2 多重if的课堂代码:
package day03; import java.util.Scanner; /** * 使用多重if实现学生成绩的判断和奖励 * * @author Administrator * */ public class TestExam { public static void main(String[] args) { // 定义变量存储成绩 double score; Scanner input = new Scanner(System.in); System.out.println("请输入成绩"); score = input.nextDouble(); // 90到100是一个区间,所以用&& //应用场景: 多重if适合于多个条件;只有一个条件会满足(可能一个条件都不满足,else省略的情况);else可以省略的; //是一个区间的判断;或者是某个值的判断 if(xx == yy) if (score >= 90 && score <= 100) { System.out.println("奖励Iphonex一部,再接再厉!"); } else if (score >= 80) { System.out.println("奖励Ipad一部,再接再厉!"); } else if (score >= 60) { System.out.println("奖励棒棒糖一枚,要努力咯,距离双打不远了"); } else if (score < 60 && score > 0) { System.out.println("混合双打一顿,要努力咯~"); } else { System.out.println("输入成绩有误,请重新输入"); } } } 1.6.3 课堂练习: 1. 使用if(或者多重if,嵌套的if)完成三个数字中的最大值 package day03; import java.util.Scanner; /** * 使用if来完成最大值的写法 不太好懂,有一定的代表意义 * * @author Administrator * */ public class TestIfMax { public static void main(String[] args) { // TODO Auto-generated method stub Scanner input = new Scanner(System.in); System.out.println("请输入三个数字"); int a = input.nextInt(); int b = input.nextInt(); int c = input.nextInt(); if (a > b) { // 此时a是ab中的最大值 // 拿a再去和c比较就可以了 if (a > c) { System.out.println("最大值是 a :" + a); } else { System.out.println("最大值是c: " + c); } } else { // 此时 b>=a // 我们再拿b去和c比较就可以了 if (b > c) { System.out.println("最大值是 b :" + b); } else { System.out.println("最大值是c: " + c); } } } }
规律:给一个月份,如何来判断这个月天数?
1, 3 ,5,7,8,10,12,= >31 不管是哪一年;
4,6,9,11 =>30天,不管是哪年;
2=>29天(闰年)或者28天(平年)
判断闰年的条件:
(能被4整除,并且&& 不能被100整除); 或者(能被400整除)
package day003;
import java.util.Scanner;
/**
* 规律:给一个月份,如何来判断这个月天数? 1, 3 ,5,7,8,10,12,= >31 不管是哪一年; 4,6,9,11 =>30天,不管是哪年;
* 2=>29天(闰年)或者28天(平年)
*
*
* 判断闰年的条件: (能被4整除,并且&& 不能被100整除); 或者(能被400整除)
*
* @author Administrator
*
*/
public class Test_Year_Month {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input = new Scanner(System.in);
System.out.println("请输入年和月份");
int year = input.nextInt();
int month = input.nextInt();
// 判断月
if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12) {
System.out.println(year + "年的" + month + "月有: 31天");
} else if (month == 4 || month == 6 || month == 9 || month == 11) {
System.out.println(year + "年的" + month + "月有: 30天");
} else if (month == 2) {
// 判断闰年的条件: (能被4整除,并且&& 不能被100整除); 或者(能被400整除)
if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0))
{
System.out.println(year + "年的" + month + "月有: 29天");
}
else
{
System.out.println(year + "年的" + month + "月有: 28天");
}
}
input.close();
}
}
1.6.4 Switch-case:
package day003; import java.util.Scanner; /** * 规律:给一个月份,如何来判断这个月天数? 1, 3 ,5,7,8,10,12,= >31 不管是哪一年; 4,6,9,11 =>30天,不管是哪年; * 2=>29天(闰年)或者28天(平年) * * * 判断闰年的条件: (能被4整除,并且&& 不能被100整除); 或者(能被400整除) * * @author Administrator * */ public class Test_Year_Month { public static void main(String[] args) { // TODO Auto-generated method stub Scanner input = new Scanner(System.in); System.out.println("请输入年和月份"); int year = input.nextInt(); int month = input.nextInt(); // 判断月 if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12) { System.out.println(year + "年的" + month + "月有: 31天"); } else if (month == 4 || month == 6 || month == 9 || month == 11) { System.out.println(year + "年的" + month + "月有: 30天"); } else if (month == 2) { // 判断闰年的条件: (能被4整除,并且&& 不能被100整除); 或者(能被400整除) if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) { System.out.println(year + "年的" + month + "月有: 29天"); } else { System.out.println(year + "年的" + month + "月有: 28天"); } } input.close(); } }
1.6.5 Switch-case中的常量可以是哪些类型?
byte.char.short.int. String类型(jdk1.7),enum(枚举)
1.6.6 使用swtich-case 结构来实现如上练习:
package day03; import java.util.Scanner; public class TestSwitchCase { public static void main(String[] args) { // 定义两个变量 分别表示年和月份 int year, month; Scanner input = new Scanner(System.in); System.out.println("请输入年和月份"); year = input.nextInt(); month = input.nextInt(); input.close(); // 判断月份 switch (month) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: System.out.println("天数31天"); break; case 4: case 6: case 9: case 11: System.out.println("天数30天"); break; case 2: // 判断是否是闰年 if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) { System.out.println("天数29天"); } else { System.out.println("天数28天"); } break; default: System.out.println("请输入正确的月份"); break; } } }
![clip_image038 clip_image038](https://img2018.cnblogs.com/blog/1673347/201907/1673347-20190718173118891-279807707.jpg)
package day03;
import java.util.Scanner;
/**
* 考试中出现
*
* @author Administrator
*
*/
public class TestSwitchCase2 {
public static void main(String[] args) {
// ① int n = 1;
// ② int n = 2;
// ③ ④ int n=5;
/*
* byte n = 1;
*
* //switch中的表达式可以是byte/short/int/char/enum(jdk1.5)/String(jdk1.7) // 判断月份
* switch (n) {
*
* case 1: System.out.println("1"); break; case 2: System.out.println("2");
* default: System.out.println("default"); break;
*
* }
*/
String str = "A";
switch (str+"A") {
case "A":
System.out.println("A");
break;
case "B":
System.out.println("B");
break;
default:
break;
}
}
}
1.6.7 Switch-case和多重if有什么异同?
package day03; import java.util.Scanner; /** * 考试中出现 * * @author Administrator * */ public class TestSwitchCase2 { public static void main(String[] args) { // ① int n = 1; // ② int n = 2; // ③ ④ int n=5; /* * byte n = 1; * * //switch中的表达式可以是byte/short/int/char/enum(jdk1.5)/String(jdk1.7) // 判断月份 * switch (n) { * * case 1: System.out.println("1"); break; case 2: System.out.println("2"); * default: System.out.println("default"); break; * * } */ String str = "A"; switch (str+"A") { case "A": System.out.println("A"); break; case "B": System.out.println("B"); break; default: break; } } }
两者都可以进行多个条件的判断;
语法上有不同的地方;switch-case他只能判断等值[byte short int char String[jdk1.7编译器环境下才支持] enum[枚举]]的情况;而多重if可以判断等值也可以判断区间;
1.6.8 循环结构:
解决的是重复的问题:
思奇:说的最多的话是什么? “忘了”
1.6.9 用循环来解决一些数学问题:
1+2+3+…+123:
分析: 循环要执行多少次? 123需要从1开始 2 3 ….123,我需要将每次的变量都累加起来;
1.6.1 循环结构for:
基本的for循环:
for(表达式1;表达式2;表达式3)
{
//循环体
}
package day04; public class Testloop { public static void main(String[] args) { // TODO Auto-generated method stub for (int i = 0, j = 4; i < 5; i++, j--) { System.out.println(i + "+" + j + "=" + (i+j)); //20? } } } package day004; import java.util.Scanner; /** * 循环案例 * @author Administrator * */ public class Test_Loop01 { public static void main(String[] args) { // TODO Auto-generated method stub // 控制台的输入和输出 // "一直"输入(数字 65-90) "一直"输出(A->Z) // 一旦用户输入的值不在65-90之间,我会直接"结束" Scanner input = new Scanner(System.in); for (;;) { System.out.println("请输入一个数字(65-90之间)"); int n = input.nextInt(); if (!(n >= 65 && n <= 90)) { // 直接结束循环 break System.out.println("Game Over"); break; } System.out.println("输出结果: " + (char) n); } // Unreachable code input.close(); } }
![clip_image044 clip_image044](https://img2018.cnblogs.com/blog/1673347/201907/1673347-20190718173202028-1467236204.jpg)
1.6.2 求100以内的偶数和 ?
1.6.3 课堂练习:
1. 求和,1+2+3+。。+100以内的奇数和;
public class TestEx01 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int sum = 0;
for (int i = 1; i <= 100; i++) {
if (i % 2 == 1) {
// 要的奇数 累加
sum += i;
}
}
System.out.println("100以内奇数和: " + sum);
}
}
2. 求1+2+3…+100和,要求跳过所有的3的倍数和5的倍数;(3同时5的倍数) &&
int sum2 = 0;
for (int i = 1; i <= 100; i++) {
if (!(i % 3 == 0 && i % 5 == 0)) {
sum2 += i;
}
}
System.out.println("sum2: " + sum2);
3猴子吃桃问题:
猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个 ;第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半多一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。 请使用for和while分别处理;
分析: 一共吃了九天;倒着推理;
第10天早上开始: 没吃, 1
第9天早上: 没吃, (1+1)*2=>4
第8天早上开始: 没吃, (4+1)*2 =>10
…
第1天早上,摘了,还没吃 (?+1)*2 =>
3. 求100-1000 以内的所有的水仙花(自己去查)数有哪些?
*
*/
public class TestEx2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
for (int i = 100; i < 1000; i++) {
// 将个位 十位 百位的值 取出来 ,求三次方
int g = i % 10;
int s = i / 10 % 10;
int b = i / 100;
if (g * g * g + s * s * s + b * b * b == i) {
System.out.println("自恋数: " + i);
}
}
}
}
1.1 其他循环结构:
我们学过for循环了,我发现,循环中大概有几个重要的组成部分:
1.1.1 While循环:
先判断条件,如果条件为真,执行循环体,如果为假,跳过循环;
1.1.2 do-while循环:
package day04;
public class TestDoWhileOrWhile {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("***********while**先判断条件*********");
int i = 1;
while (i > 1) {
i++;
System.out.println("i" + i);
}
System.out.println("***********do-while**先执行一次再说*******");
int j = 1;
do {
j++;
System.out.println("j" + j); //2 3
} while (j > 1);
}
}
1.1.3 Foreach循环:
1.2 总结:
1. 数据类型:基本类型(栈) 和引用(引用名->栈 对象->堆)
2. 运算符讲解完成:逻辑运算符,++ --(单目), 了解位运算
3. 条件[分支]:if if-else if-else if-else switch-case ;多重 if 和switch-case二者区别
4. 基本的循环结构: while结构 ,do-while循环
5. 循环: for 基本语法,执行过程,基本应用
1.3 作业:
1. 课堂作业没完成的继续完成
* 自己选择使用do-while while for循环
* 从控制台接收一行字符串;
* 判断并计算出: 大写字母的个数 i ,小写字母的个数 j ,数字的个数 k ,空格的个数 x 以及其他字符z的个数分别有几个;
* 实现思路:定义几个变量分别用来计数;循环遍历我们字符串得到其中的每个字符 charAt(?) ;对字符进行判断;进行累加
*