问答时间!!!
正式开始今天之前你,问一下上节课的小问题(可别小瞧这些问题,我们老师说,说不定你以后去面试,考官就会问你这些问题,作为plmm的我们一定要复习,温故而知新嘛,听话啊)
1.八种数据类型是哪些(数值类型和非数值类型)
2.变量和常量的命名规范
3.&和&&的区别,|和||的区别
?了,就问这些问题吧,我可是明白了,你知道答案吗?不知道可就要打屁屁了
去我上节笔记中找答案吧,顺便再复习的看一下
一.选择结构
今天我们来了解什么是选择结构?
我们伟大的Charles说:选择结构和循环结构可以称为是界定一个语言是否是编程语言的标准(悄悄的告诉你们,我赶脚我们老师可厉害呢,之前是个可英俊的小伙呢,后来…此处省略一万字)。
关于选择结构,我希望我的plmm们可以做到
-
掌握基础if选择结构
-
掌握if-else互斥分支选择结构
-
掌握if-else多重选择结构
-
掌握嵌套选择结构
-
掌握switch选择结构
-
了解switch和if结构区别
1.了解流程控制语序
有的小可爱会问控制语句又是什么呢?
控制语句:控制语句即用来实现对程序流程的选择、循环、转向和返回等进行控制
用途:用于控制程序的流程
列子:魔法女孩的魔法分值高达90分,奖励巴啦啦魔法棒
使用逻辑运算符实现复杂的if:
列子:魔法女孩的魔法值大于90分,并且自愈能力大于80分时,或魔法值等于100,自愈能力大于70分时,我给他颁发孙雨雷证书
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
// 提示输入魔法值和自愈能力
System.out.print("请输入魔法女孩的魔法值")
double Score1= input.nextDouble();
System.out.print("请输入魔法女孩的自愈能力
double Score2= input.nextDouble();
// 开始判断
boolean flag1 = Score1> 90 && Score2> 80;
boolean flag2 = Score1= 100 && Score2> 70;
if(flag1 || flag2) {
System.out.println("奖励孙雨雷证书")
}
// 反之
if(!(flag1 || flag2)) {
System.out.println("Time over")
}
}
}
结合运算符的优先级编写条件
- 最高的优先级:()
- 最低的优先级:=
3.掌握互斥if选择结构
语法:
if(条件表达式){
//条件成立执行的内容
}else {
//条件不成立的内容
像刚才的例子魔法女孩通过的考试奖励他,那要是没有通过,那该怎么办你?
一起来看互斥if时怎么使用的
public static void main(String[] args) {
// 创建对象
Scanner input = new Scanner(System.in);
System.out.print("请输入魔法女孩的魔法值:");
double score = input.nextDouble();
// 套语法
if(score > 90) {
System.out.println("送他一个魔法棒!");
}else {
System.out.println("送他一只孙雨雷!");
}
}
}
4.掌握多重if选择结构
多重if选择结构:可以处理分段的条件分支情况,else if 分支的数量没有限制,但是为了代 码的可读性,还是不要在if后面加入太多的else if,如果必须使用这种形式,则把尽可能先满 足的条件放在前面。
语法:
if(条件表达式1){
// 成立代码
}else if(条件表达式2){
// 成立代码
}else if(...){
// ...
}else{ // 可以省略 建议添加
// 如果上述条件都不满足 可以执行
}
**注意事项:**伟大的老师曾经说
- 多重if中的else if必须配合if使用,不能单独出现,它可以出现多次
- 多重if中可选添加else代码块
- 多重if中代码是自上而下执行判断的,只要有一个条件满足,其余的条件就不再执行(范围大的放在上方)
5.掌握嵌套if选择结构
嵌套if控制语句可以通过外层语句和内层语句的协作,增强程序的灵活性。嵌套if选择结构: 可以处理复杂的条件分支情况。
语法:
if(条件1){
if(条件2){
//代码块1
}else{
//代码块2
}
}else{
//代码块3
}
例子:班级举行打孙雨雷比赛,打成八级伤残才可以进行下一轮进攻
public class Demo3 {
public static void main(String[] args) {
System.out.println("超级想打孙雨雷~~~");
// 0没有打成八级伤残 1打成八级伤残
int weight = 1;
//不超过500斤就可以参加
int maxWeight = 499;
System.out.println("正在报名参加~~~");
// 判断
if ( weight == 1) { // 可以打
System.out.println("热身~~~");
// 判断体重是否达标
if(maxWeight < 500) {
System.out.println("往死打孙雨雷");
}else {
System.out.println("获得打韩迪的机会 ");
}
}else { // 没有打成八级伤残
System.out.println("能不能使点劲!");
}
}
}
-
嵌套if可以无限嵌套,只要需求需要则可以继续编写
-
嵌套if建议最好不超过3层,层级过多则容易导入代码阅读困难
-
嵌套if,随意嵌套if语法(基础if、互斥if、多重if)
6.掌握switch选择结构
语法:
switch(表达式){ case 常量1: // 代码 break; case 常量2: // 代码 break; case 常量....: // 代码 break; default: // 默认情况 break; }
例子:电脑和你玩石头剪刀布
诶呦,不错哦
public class Demo3 { public static void main (String [] args ) { // 创建对象 Scanner input = new Scanner(System.in); // 输入 System.out.println("请输入石头(0)、剪刀(1)、布(2)"); int person = input.nextInt(); // 出拳 switch(person) { case 0 : System.out.println("您出的是石头"); break; case 1 : System.out.println("您出的是剪刀"); break; case 2 : System.out.println("您出的是布"); break; } // 随机[0,3) int computer = (int) (Math.random() * 3 ); // 电脑出拳 switch (computer) { case 0 : System.out.println("电脑出的是石头"); break ; case 1 : System.out.println("电脑出的是剪刀"); break ; case 2 : System.out.println("电脑出的是布"); break ; } //判断 if ((computer == 0 && person == 2) || (computer == 1 && person == 0) || (computer == 2 && person == 1)) { System.out.println("您胜利了!"); }else if (computer == person ) { System.out.println("平局"); }else { System.out.println("您失败了\n"); } } }
之前说了流程控制语句有选择结构,他还有个哥哥叫循环结构
我们一起来和他交给朋友吧!!!
二 .循环结构
关于选择结构,我希望plmm们做到
-
掌握while循环结构
-
掌握do - while循环结构
-
掌握for循环结构
-
掌握代码调试
-
使用跳转语句控制程序流程
我们为什么学习循环呢?
因为都是重复性的内容,所以我们需要将实现方案进行简化
循环:往复回旋,指事物周而复始的运动或变化
问题:如何打印100遍 “我要秃头了”?
public static void main(String[] args) {
// 需求:输出100遍我要秃头了
System.out.println("第1遍 我要秃头了!");
System.out.println("第2遍 我要秃头了!");
System.out.println("第3遍 我要秃头了!");
System.out.println("第4遍 我要秃头了!");
System.out.println("第5遍 我要秃头了!");
System.out.println("第6遍 我要秃头了!");
System.out.println("第7遍 我要秃头了!");
System.out.println("第8遍 我要秃头了!");
System.out.println("第9遍 我要秃头了!");
......
System.out.println("第100遍 我要秃头了!");
}
如果这样完成这个,用我们老师的话说就是太low了
所以,我们来学习一个不一样的东西
1.掌握while循环结构
语法:
// 循环条件
while(条件表达式){ // (如果)当条件成立 我就执行..
// 条件成立....
// 循环操作/循环体
}
循环结构的组成:
-
初始化循环的变量(用于表示条件用的)
-
循环条件
-
循环操作
-
循环出口(更新循环变量)
例子:
// 需求:打印100个我要秃头了 // 循环条件 <= 100 // 循环操作 public static void main (String [] args ){ // 1.声明初始化循环变量 int i = 0; // 2.循环条件 while(i <= 100){ //3.循环操作 system.out.println("打印第"+ (i + 1)+"我要秃头了"); i += 1; } }
2.掌握do-while循环结构
语法:
// do:做...
do {
// 循环操作
// 循环出口
}while(循环条件);
例子:
// 需求:某位同学参加考试 考试通过则放假休息 不通过继续参加考试
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
// 提升作用域
// 初始化循环变量
int i;
// 变量是有作用域的 它的作用域的范围与其直接所属的{}有关
do {
// 循环操作
System.out.println("魔法女孩参加考试!");
// 循环出口 提示输入
System.out.print("魔法女孩考试是否通过(0通过 1未通过)?");
i = input.nextInt();
}while(i == 1); // 循环条件
}
敲黑板了哈!!
这个要理解记忆哦
多多练习,分辨出他们
while和do-while的区别:
- 相同点:都可以实现循环结构
- 不同点:
- 执行次序:
- while循环是先判断条件 然后再执行循环
- do-while循环是先执行循环 然后再判断条件
- 初始值条件不满足:
- while循环如果初始值不满足,那么不会执行循环操作
- do-while循环无论是否满足,都至少会执行一次!
- 执行次序:
3.for循环
学完了while 循环语法,我们认识一种循环语法:for循环。for循环是我 们后期高频次使用的一种循环语法!在循环次数固定的情况下,for比while更简洁
语法:
for(1初始化循环变量;2循环条件;4循环出口){
// 3循环操作
}
// 1 2 3 4 2 3 4 2 3 4...
例子
for (int i = o ; i < 100;i ++){
//循环操作
system.out.println ("输入第"+(i + 1)+"次好好洗头!");
}
4.掌握代码调试(很重要哦)
世界没有完美的程序,我们是尽力将我们的程序接近完美。
bug (八阿哥) :臭虫
-
盯 (读代码,构想代码运行的结果)
-
通过输出语句(System.out.println())/日志来打印内容
-
通过debug工具
断点(break point):程序中断(暂停)的位置
变量表(variables):展示在当前方法内的局部变量(在debug时经常观察它)
-
在预测的可能出现问题的位置左侧双击 可以添加断点
-
通过debug as 方式运行程序 它会自动运行到断点位置然后暂停 等待你的下一步指令,暂停的这一行目前处于将要执行还未执行的状态。
- F6(Step Over) 掌握 表示执行当前行的代码 切换到下一行
- F8(Resume) 掌握 快速放行到下一个断点位置(跳过我们不想查看的部分)
- F5(Step into) 目前了解 表示进入到要执行的方法内
-
观察变量表等信息 发现问题 解决问题
-------来自我们那自恋的老司机
三.多重循环
1.为什么使用多重循环呢?我也不知道,哈哈哈哈
我们来看点图形
***** ***** * ***** ***** *** ***** ***** ***** ***** ***** ******* ***** ***** *********
-
看看我们的老司机多狠,他要打断我们的腿
可不能这样,他说了,要一个一个的打印出来
我们来一个一个的打印吧,看看他是何方妖怪,吃俺老孙一棒
1.
//打印上述矩形
//外层循环
for(int i = 0 ; j < 5 ; i ++){
//内层循环
for (int j = 0 ; j <5 ; j ++){
system.out.print("*")
}
System.out.println();
}
2.
//打印平行四边形
//外层循环
for(int i = 1; i <= 5;i++){
for (int j = 1;j <= 5 - i; j ++){
system.out.print(" ");
}
//外层循环
for(int j = 1;j <=5 ; j ++){
system.out.print("*");
}
system.out.println();
}
3.
//打印等腰三角形
//外层循环,执行五次,每次输出一行*
for (int i = 1; i <= 5; i++) {
for(int j=1;j<=5-i;j++){
system.out.print(" ");
}
//内层循环,执行五次,每次输入一个*
for(int j = 1 ;j<=2*i-1;j++){
system.out.print("*");
}
system.out.println();
}
2. 多重循环的语法
多重循环指的就是循环嵌套,但是一般嵌套的循环也就2层 所以多重循环又被称为二重循环。
你能想到的循环结构都可以随意嵌套。
多重的循环:最外层的被称为外层循环,嵌套的循环被称为内层循环。
外层循环执行一次,内层循环会执行一遍。
3.使用跳转语句控制程序流程
语法:
while(true){
}
do{
}while(true);
for(;;){
}
break
(中断):switch中有
- 在switch中是用于结束判断的
- 在循环中是用于结束循环的 多重循环的时候 break只会结束当前循环。
continue
(继续):只能出现在循环中
死循环:无法结束的循环。
-----来自自恋的老司机
//内层循环,执行五次,每次输入一个*
for(int j = 1 ;j<=2*i-1;j++){
system.out.print("*");
}
system.out.println();
}
2. 多重循环的语法
多重循环指的就是循环嵌套,但是一般嵌套的循环也就2层 所以多重循环又被称为二重循环。
你能想到的循环结构都可以随意嵌套。
多重的循环:最外层的被称为外层循环,嵌套的循环被称为内层循环。
外层循环执行一次,内层循环会执行一遍。
3.使用跳转语句控制程序流程
语法:
while(true){
}
do{
}while(true);
for(;;){
}
break
(中断):switch中有
- 在switch中是用于结束判断的
- 在循环中是用于结束循环的 多重循环的时候 break只会结束当前循环。
continue
(继续):只能出现在循环中
死循环:无法结束的循环。
-----来自自恋的老司机
呼~~~~三天的笔记我终于整理 完了,赶脚我要疯了,要认真学哦,我去撒溜的上厕所去了。