A:嗨,我们晚上去吃个排骨汤吧 1.语法: if () { // 括号里必须是布尔条件表达式 如:之前的问题我们可以套用语法 if(张浩的java成绩>90分){ 流程图: 针对之前的问题,有两种实现方式,一是使用Scanner方式实现,二是声明变量 运算符优先级顺序: 张浩的Java成绩大于98分,而且音乐成绩大于80分,老师会奖励他;或者Java成绩等于100分,音乐成绩大于70分,老师也会奖励他 我们可以用( score1 >98 && score2 > 80 ) || ( score1 == 100 && score2 > 70 )就相当于下面这串代码: 原本使用两个基本if选择结构 现在可以使用if-else选择结构实现比上面好用多了 流程图: 在我们的之前学习过程中,都是判断两种情况,不是怎么样就是怎么样 代码: 问题:成绩>=80 :良好 成绩>=60 :中等成绩<60 :差 思考:if里面的条件顺序是否可以随意更换 宝宝:今晚我们去看电影吧? 分析:女是答应去的,但是有前提条件就是不能迟于6点钟 问题:学校举行运动会,百米赛跑跑入10秒内的学生有资格进决赛,根据性别分别进入男子组和女子组 } 流程图: 代码: 韩嫣参加计算机编程大赛 用之前学习的方法亦可以解决问题,但是使用以上的多重if选择结构比较复杂和啰嗦, /** 1.常量名不可重复 2.每一个case后面要有break结束语 3.default可以在任何位置,除了在最后break可以省略在其他位置都不可省略(题意要求的除外) 建议都放在最后 4.switch后面的表达式类型只能是int byte short char 枚举 和jdk1.7以后的String 5.case后面的常量不是一定要连续的 6.表达式是哪个就会跳转到相对于的case语句 常见 3种错误: 相同点: 1.不同点: 多重if选择结构: 选择结构总结: 到目前为止我们学习过五种选择结构: switch:选择结构 2.为什么要处理系统异常: switch结构中我们常常输入的是int类型的值,但是用户不知道,可能会输入其他类型的值,这样的话就会报出输入类型不匹配的异常,为了避免这种情况的出现,我们可以在最开始的时候对其进行判断和限制 如果用我们之前的知识打印一百次好好学习天天向上,需要写100次输出语句很麻烦。 System.out.println(“第1遍写:好好学习,天天向上!”); …… 循环条件 循环操作 KaTeX parse error: Expected ‘}’, got ‘EOF’ at end of input: … i ++;} 流程图: 特点:先判断,再执行 编码规范:缩进、换行 1.确定循环条件和循环操作 套用while语法写出代码 3.检查循环是否能够退出 流程图: 1.打印 50 份试卷 2.老师每天检查张浩的学习任务是否合格。如果不合格,则继续进行。 先执行一遍循环操作,再判断是否符合条件,符合则继续执行,否则退出; 流程图: 特点:先执行,再判断 不同点: 有很多问题用我们之前的whie循环是可以的,也可以使用我们现在for循环,类似于运动员有的擅长跑,有的擅长短跑,但是都是长跑的。我们的循环也是一样,只是他们都有自己擅长的领域。 对比for循环的结构和while循环的结构,其实结构都是一样的只是每个部分所在的位置有所不同,之前所在的是多行的内容现在放到一个括号里面了,所以更简洁了。执行顺序可以根据while循环的执行顺序自己先猜测下。 代码规范:格式对齐、代码的缩进 1.使用for循环结构的步骤 每个表达式之间用分号隔开 2.循环输入某同学S1结业考试的5门课成绩,并计算平均分 常见问题1: 常见问题2: 常见问题3: 使用for循环: 循环初始化:i = 0;j = 输入值 循环条件:i<=输入值 循环操作:计算i+j 循环变量的改变:i++,j– //其他语句 回顾之前的break在switch中的用法,遇到break就跳出当前语句; 循环录入成绩,判断录入正确性。录入错误,使用break语 句 立刻跳出循环;否则,累加求和 continue :只能用在循环里 使用场合:break用于switch结构和循环结构中 作用(循环结构中): 补充:return 结束当前方法的执行并退出,返回到调用该方法的语句处。(具体讲解在方法处) 语法: 区别2:执行顺序 1.数组基本要素 2.数组长度固定不变,避免数组越界 1.使用数组四步走 数据类型 数组名[]; 2.声明数组 数据类型 [] 数组名 = new 数据类型[数组长度]; 3.分配空间 方式一: … … 方式二: 一起赋值 方式三: 4.处理数据 但是如果像上面写法的话还是会有弊端的,如:学生的个数有变动,那我们的循环次数和求平均分的时候除以的数都需要修改,我们有一个方法避免修改多处 有一个数列:8,4,2,1,23,344,12 2.数组排序 使用java.util.Arrays类 外层循环控制班级数目,内层循环控制每个班级学员数目 使用二重循环实现 冒泡排序速记口诀(升序) 1.使用二重循环解决
1.第三章 选择结构(一)
1.概念
B:我现在牙还在疼,如果到晚上的时候不疼了我们就一起去2. 什么是if选择结构
//代码块,只有一条语句的时候大括号可以省略,但是不建议那么做
}
获得MP4作为奖励
}
这里给出声明变量的方式,另一种实现方式自己实现 double score=90.0; if(score>90){ //判断是否大于90分 System.out.println("老师说不错,奖励一个MP4"); } System.out.println("程序结束");
2.复杂条件下的if选择结构
运算符
表达式
说 明
&&
条件****1 && 条件****2
仅仅两个条件同时为真,结果为真
||
条件****1 || 条件****2
只要两个条件有一个为真,结果为真
!
! 条件
条件为真时,结果为假****条件为假时,结果为真
!>算术运算符>比较运算符>&&>|| int score1 = 100; // 张浩的Java成绩 int score2 = 72; // 张浩的音乐成绩 if ( ( score1 >98&& score2 > 80 ) || ( score1 == 100 && score2 > 70 ) ){ System.out.println("老师说:不错,奖励一个MP4!"); } System.out.println("程序结束"); ## 3.
使用if-else选择结构
if(条件)//代码块1else//代码块2
if(张浩Java成绩>98)奖励一个MP4;else惩罚进行编码;double score=91; if(score>98){ System.out.println("奖励一个MP4"); }else{ System.out.println("考的有点不好,惩罚"); }
4.使用多重if选择结构
在实际生活中是可能出现区间选择的,如:分数的评级
成绩>=80 :良好 成绩>=60 :中等成绩<60 :差
类似这样,单个的if无法完成,多个if又比较麻烦,那就可以使用我们即将学习的多重if
if(成绩>=80)//代码块1elseif(成绩>=60)//代码块2else//代码块3
流程图:int score=77; if(score>=80){ System.out.println("良好"); }else if(score>=60){ System.out.println("中等"); }else{ System.out.println("差"); } System.out.println("程序结束");
5.为什么使用嵌套if选择结构
小饼干:好啊,不过晚于6点还有其他事就不去了
这里就相当于有两个if条件,第一个条件满足才会执行后面的内容
分析:
如果进入决赛 再看是男还是女,如果是男进入男子组女就进入女子组。这就使用到了嵌套if选择结构if(条件1) { //外面的条件判断 if(条件2) { //里面的条件判断 //代码块1 } else { //代码块2 } } else { //代码块3
int m=8; String sex="女"; if(m<10){ //外层判断 if(sex.equals("男")){ //内层判断 System.out.println("宝宝"); }else if(sex.equals("女")){ System.out.println("饼干"); } }else{ System.out.println("淘汰了回家去吧朋友"); } System.out.println("程序结束");
第四章 选择结构(二)
6. 为什么使用switch选择结构
如果获得第一名,将参加麻省理工大学组织的1个月夏令营
如果获得第二名,将奖励惠普笔记本电脑一部
如果获得第三名,将奖励移动硬盘一个
否则,不给任何奖励int mingCi=2; if(mingCi==1){ System.out.println("参加夏令营活动"); }else if(mingCi==2){ System.out.println("奖励笔记本一部"); }else if(mingCi==3){ System.out.println("奖励移动硬盘一个"); }else{ System.out.println("没有奖励"); }
现在可以使用switch结构来解决这样的问题,switch解决的是等值判断
语法:switch(表达式)//byteshotintchar枚举jdk1.7之后有String类型case常量1:break;case常量2:break;case常量3:break;...default:break;
如何使用:
*/int mingCi=2; switch(mingCi){ case 1: System.out.println("参加夏令营活动"); break; case 2: System.out.println("奖励笔记本一部"); break; case 3: System.out.println("奖励移动硬盘一个"); break; default: System.out.println("没有奖励"); break; } System.out.println("程序结束");
7.比较switch和多重if选择结构
都是用来处理多分支条件的结构
switch结构:
只能处理等值条件判断的情况
没有switch选择结构的限制,特别适合某个变量处于某个连续区间时的情况
基本if选择结构: 处理单一或者组合条件的情况
if-else选择结构:处理简单的条件分支情况
多重if选择结构:处理复杂的条件分支情况
嵌套if选择结构:用于较为复杂的流程控制
多重分支并且条件判断是等值判断的情况。
方法如下;if(input.hasNextInt()){ //这里是相关的seitch语句 }else{ //如果输入的不是数字 System.out.println("请输入正确的数字"); }
第五章 循环结构(一)
8.循环
System.out.println(“第2遍写:好好学习,天天向上!”);
System.out.println(“第3遍写:好好学习,天天向上!”);
System.out.println(“第4遍写:好好学习,天天向上!”);
System.out.println(“第9999遍写:好好学习,天天向上!”);
System.out.println(“第10000遍写:好好学习,天天向上!”);9.什么是循环:
10.什么是while循环
11.使用while循环
分析:能否用循环解决
若能,找到循环操作和循环条件以及明确循环变量
publicstaticvoidmain(String[]args)intcount=1;while(count<=50)System.out.println(“打印第“+count+“份试卷“);count++;
老师给张浩安排的每天的学习任务为:上午阅读教材,学习理论部分,下午上机编程,掌握代码部分 System.out.print("合格了吗?(y/n):"); String answer = input.next(); while(!"y".equals(answer)) { System.out.println("上午阅读教材!"); System.out.println("下午上机编程!n"); System.out.print("合格了吗?(y/n):"); answer = input.next(); } System.out.println("完成学习任务!");
12.do-while循环
do循环操作while(循环条件);
注:最后的分号要注意加上do{ System.out.println("上机编写程序!"); System.out.print("合格了吗?(y/n)"); answer = input.next(); System.out.println(""); }while(!"y".equals(answer)); System.out.println("恭喜你通过了测试!");
13.while 和 do-while的区别
语法不同:
执行次序不同
初始情况不满足条件时:
while循环一次都不执行
do-while循环不管任何情况都会执行一次第六章 循环结构(二)
14.为什么使用for循环
int i=0; while(i<100){ System.out.println("好好学习!"); i++; } for比while更简洁 for ( int i = 0 ; i < 100 ; i++ ) { System.out.println("好好学习!"); }
15.如何使用for循环
分析循环条件和循环操作
套用for语法写出代码
检查循环是否能够退出
语法:for(表达式1;表达式2;表达式3)循环操作
分析:是否能用循环做,循环次数是否为固定的。
做出如下的效果图Scanner sc = new Scanner(System.in); System.out.print("请输入学生的姓名:"); double score=0; double sum=0; for(int i=1;i<=5;i++){ System.out.println("请输入第"+i+"门课程的成绩:"); score=sc.nextDouble(); sum+=score; } double avg=sum/5; System.out.println("平均分是:"+avg); 练习2:写出如下格式的加法表 分析是否适合使用循环,用什么循环,循环的次数是固定的么? 分析:先分别打印出0~6,再分别打印出6~0,然后做和运算即可。 参考代码 Scanner sc = new Scanner(System.in); System.out.print("请输入一个值:"); int num=sc.nextInt(); for(int i=0,j=num;i<=num;i++,j--){ System.out.println(i+"+"+j+"="+(i+j)); }
缺乏变量的初始化,但可以在for循环上面的初始化
表达式之间用分号隔开
缺乏表达式2或表达式3,都会使得循环进入死循环。但是编译没错。
输出加法表:for(inti=0,j=val;i<=val;i++,j−−)System.out.println(i+“+“+j+“=“+(i+j));
16.为什么需要break语句
int i = 2; switch(i){ case 1: System.out.println("星期一"); break; case 2: System.out.println("星期二"); break; }
17.如何使用break语句
for(int i = 0; i < 5; i++){ //循环5次录入5门课成绩 System.out.print("请输入第" + (i+1) + "门课的成绩: "); score = input.nextInt(); if(score < 0){ //输入负数 isNegative = true; break; } sum = sum + score; //累加求和 }
18.什么是continue语句
continue 作用:跳过循环体中剩余的语句而执行下一次循环
语法:while()continue;//通常与条件语句一起使用加速循环
循环录入Java课的学生成绩,统计分数大于等于80分的学生比例
分析:通过循环输入分数获得大于等于80分的人数,如果大于80分的就执行num++,否则不执行num++操作
显出如图的效果 for (int i = 0; i < total; i++) { System.out.print("请输入第" + (i + 1) + "位学生的成绩: "); score = input.nextInt(); if (score < 80) { continue; } num++; } System.out.println("80分以上的学生人数是: " + num); double rate = num *1.0 / total * 100; //计算比例 System.out.println("80分以上的学生所占的比例为:" + rate + "%");
19.对比break和continue
continue一般用于循环结构中
break 语句终止某个循环,程序跳转到循环外的下一条语句
continue跳出本次循环,继而执行下一次的循环20.循环结构总结
while 循环:先判断,再执行
do-while循环:先执行,再判断
for循环:先判断,再执行
区别3:适用情况
循环次数确定的情况,通常选用for循环
循环次数不确定的情况,通常选用while或do-while循环第七章 数组
21.什么数组
标识符:数组的名称,用于区分不同的数组
数组元素:向数组中存放的数据
元素下标:对数组元素进行编号,从0开始,数组中的每个元素都可以通过下标来访问
元素类型:数组元素的数据类型22.如何使用数组
数据类型 [] 数组名; //常用写法int [] score1; int score2[]; String [] name;
int [] num = new int [10];
一个一个的赋值:int []um = new int[10]; num[0]=10; num[1]=11; num[2]=20;
int [] num={11,21,33}; int [] n = new int[]{22,33,21,22}; //这里不能指定数组的长度,大括号里有几个数就默认数组的长度是几了
动态地从键盘录入信息并赋值Scanner sc = new Scanner(System.in); for(int i=0;i<30;i++){ score[i]=sc.nextInt(); } for(int i=0;i<30;i++){ score[i]=sc.nextInt(); }
计算5位学生的平均分: int [ ] score = {60, 80, 90, 70, 85}; double avg; avg = (score[0] + score[1] + score[2] + score[3] + score[4])/5;
动态的获取数组的长度。 score.length23.常见错误
int [] score= new int[]; int [] score= new int[2]; score[0]=11; score[1]=11; score[2]=11; //下标越界了 int [] score; score={11,22,33,21};
循环输出数列的值
求数列中所有数值的和
猜数游戏:从键盘中任意输入一个数据,判断数列中是否包含此数
java.util包提供了许多工具类
Arrays类提供操作数组的方法
如排序、查询
Arrays类的sort()方法:对数组进行升序排列24.Arrary常用方法
int [] arr1={12,21,10}; int [] arr2={12,21,10}; int [] arr3={8,21,10}; //1 equals(arr1,arr2) 比较arr1 和 arr2是否相等 boolean b = Arrays.equals(arr1,arr2); boolean c = Arrays.equals(arr1,arr3); System.out.println(b); //true System.out.println(c); //false ======================================================= //2. sort(array) 对数组array进行升序排序 System.out.println(Arrays.toString(arr3)); Arrays.sort(arr3); System.out.println(Arrays.toString(arr3)); =============================================================================================== //void fill(array,fill); 把数组中元素都换成fill Arrays.fill(arr3, 0); System.out.println(Arrays.toString(arr3)); ============================================================== //copyOf(array,length) 把数组赋值成一个length长度的数组,返回的类型和复制的数组一致 int[] of = Arrays.copyOf(arr1, 5); System.out.println(Arrays.toString(of)); ============================================================ //int binarySearch(array,val) 查询元素val在数组array中的下标的位置,前提要求 //先对数组进行升序的排序,显示的是排序后的元素下标 Arrays.sort(arr3); //排序后 8 10 21 int search = Arrays.binarySearch(arr3, 21); System.out.println(search);
15. Arrays类
boolean equals(array1,array2)
比较array1和array2两个数组是否相等
sort(array)
对数组array的元素进行升序排列
String toString(array)
将一个数组array转换成一个字符串
void fill(array,val)
把数组array所有元素都赋值为****val
copyOf(array,length)
把数组array复制成一个长度为length的新数组,返回类型与复制的数组一致
int binarySearch(array, val)
查询元素值val在数组array中的下标(要求数组中元素已经按升序排列)
第八章 循环结构进阶
26.为什么使用二重循环
for(int i = 0; i <classNum; i++){ sum = 0.0; System.out.println("请输入第" + (i+1) + "个班级的成绩"); for(int j = 0; j < score.length; j++){ System.out.print("第" + (j+1) + "个学员的成绩:"); score[j] = input.nextInt(); sum = sum + score[j]; } aver [i] = sum / score.length; //计算平均分 System.out.println("第"+(i+1)+"个班级平均分" + aver [i] + "n"); }
27什么是二重循环
1. 一个循环体内又包含另一个完整的循 2. 语法: while的双重循环 while(循环条件1) { //循环操作1 while(循环条件2) { //循环操作2 } } do { //循环操作1 do { //循环操作2 }while(循环条件1); }while(循环条件2); for(循环条件1) { //循环操作1 for(循环条件2) { //循环操作2 } } while(循环条件1) { //循环操作1 for(循环条件2) { //循环操作2 } } 特点: 外层循环一次,内层循环一遍 ## 28.如何使用二重循环 1.打印四边形的星星 提示:外层循环控制行数,内层循环控制列数 //打印四边形的星星 for(int i=1;i<=5;i++){ for(int j=1;j<=5;j++){ System.out.print("*"); } System.out.println(); } ==================================================================== 2. 打印如图所示的图案 //打印直角三角形 Scanner sc = new Scanner(System.in); System.out.println("请输入三角形的行数:"); int num=sc.nextInt(); for(int i=1;i<=num;i++){ for(int j=1;j<=(2*i-1);j++){ System.out.print("*"); } System.out.println(); } ===================================================== 3.打印倒直角三角形 //打印直角三角形 Scanner sc = new Scanner(System.in); System.out.println("请输入三角形的行数:"); int num=sc.nextInt(); for(int i=1;i<=num;i++){ for(int j=1;j<=(num+1-i);j++){ System.out.print("*"); } System.out.println(); } ================================================================================= 打印等腰三角形(如下图效果) 参考代码: //打印等腰三角形 Scanner sc = new Scanner(System.in); System.out.print("请输入您要打印的行数:"); int num=sc.nextInt(); for(int i=1;i<=num;i++){ for(int j=1;j<=num-i;j++){ System.out.print(" "); } for(int k=1;k<=(2*i-1);k++){ System.out.print("*"); } System.out.println(); } ============================================================================== 冒泡排序: 一共是比较了数组长度的-1轮,每一轮比较的次数都是比上一次少一 //打印冒泡 int [] arr={21,77,23,32,1,99}; System.out.println("排序之前:"); for(int i=0;i<arr.length;i++){ System.out.print(arr[i]+" "); } System.out.println(); for(int i=0;i<arr.length-1;i++){ for(int j=0;j<arr.length-i-1;j++){ if(arr[j]>arr[j+1]){ int temp=arr[j]; arr[j]=arr[j+1]; arr[j+1]=temp; } } } System.out.println("排序之后:"); for(int i=0;i<arr.length;i++){ System.out.print(arr[i]+" "); } ============================================================================= //若有3个班级各4名学员参赛,计算每个班级参赛学员平均分,统计成绩大于80分学员数 Scanner sc = new Scanner(System.in); double avg=0; double sum=0; double score=0; int num=0; for(int i=1;i<=3;i++){ System.out.println("请输入第 "+i+"个班级的成绩:"); sum=0; for(int j=1;j<=4;j++){ System.out.print("请输入第 "+j+"个同学的成绩:"); score=sc.nextDouble(); sum+=score; if(score<80){ continue; } num++; } System.out.println("第 "+i+"个班的平均分是:"+sum/4); } System.out.println("80分以上的学院个数为:"+num); =========================================================== 循环和break相结合的联系 Scanner sc = new Scanner(System.in); String answer=""; int num=0; for(int i=1;i<=5;i++){ System.out.println("欢迎光临第 "+i+"家店");
1. for(int j=1;j<=3;j++){ System.out.print("要离开么(y/n): "); answer=sc.next(); if(answer.equals("y")){ System.out.println("离店结账"); break; } num++; } System.out.println("一共买了 "+num+"件衣服"); }
29.冒泡排序
N 个数字来排队
两两相比小靠前
外层循环 N-1
内层循环 N-1-I30.在二重循环中使用break
外层循环控制去每个专卖店
内层循环控制买衣服过程
使用break退出内层循环for(int i = 0; i < 5; i++){ System.out.println("欢迎光临第" + (i+1) + "家专卖店"); for(int j = 0; j < 3; j++){ System.out.println("要离开吗(y/n)?"); choice = input.nextLine(); if("y".equals(choice)){ break; } System.out.println("买了一件衣服"); count++; //计数器加1 } //…… }
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算