第2章 JAVA语言基础3
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课堂练习 根据赵本山的考试成绩,显示所获 奖励 成绩==100分,爸爸给他买辆车 成绩>=90分,妈妈给他买MP4 90分>成绩>=60分,妈妈给他买 本参考书 成绩<60分,什么都不买
课堂练习 张三为他的手机设定了自动拨号 按1:拨爸爸的号 按2:拨妈妈的号 按3:拨爷爷的号 按4:拨奶奶的号
问题 令狐冲Java成绩大于90分,而且音乐成绩大于 80分,师父奖励他; 或者Java成绩等于100分,音乐成绩大于70分 ,师父也可以奖励他
问题解决
public class HelloAccp3 { public static void main(String[ ] args)
{
int score1 = 100; int score2 = 72; //令狐冲的Java成绩 //令狐冲的音乐成绩
do-while语句 do…while语句格式:
[init_expr;] do{ body_statement; [alter_expr;] }while( test_expr);
while/do-while
表达式值
语 句
语 句
表达式值
结束
结束
While 语句
do-While 语句
找出以下语句的错误 int num = 0; while(2) { num++; System.out.print("result = " + num); }
流程控制
流程控制 顺序 分支 循环
问题 如果令狐冲的Java考试成绩大于90分,师父就 奖励他一本武功秘笈
分支(条件)语句 分支语句实现程序流程控制的功能 ,即根据一定 的条件有选择地执行或跳过特定的语句 Java分支语句分类 if…else switch
if语句
if 和 else语句
}
}
寻找错误(2处)
if(a++){ b=a*a; a/=2; else{ b=a*3; ++b; }
问题 令狐冲参加比武大会
如果获得第一名,将出任武林盟主 如果获得第二名,将出任武当掌门 如果获得第三名,将出任峨嵋掌门 否则,将被逐出师门
switch语句
计算表达式的值
switch (表达式) { case 常量 1: 语句; break;
课堂练习 输出1-100内前5个可以被3整除 的数。
注意:if或else if后的条件表达式需要用括号括 起来,但是如果只有一句语句,可以省略{}
问题解决
public class Lhc { public static void main(String[ ] args) { int score = 95; //令狐冲的Java成绩 if ( score > 90 ) { //判断是否大于90分 System.out.println("师父说:不错,给你 《独孤九剑》剑谱"); } } }
if ( (score1 > 90 && score2 >80)
|| (score1 == 100 && score2 > 70) ) { System.out.println("师父说:不错,给你《独孤九剑》剑谱"); } } }
问题 如果令狐冲考试成绩大于90分,师父就奖励他《 独孤九剑》,否则师父就罚他上思过崖闭关思过
生活中的循环
打印50份试卷
10000米赛跑
锲而不舍地学习
旋转的车轮
循环结构的特点
循环结构 循环条件 循环操作
循环语句 循环语句是用来控制那些根据运行期情况需要反 复执行的语句系列。 Java中的循环语句 for do/while while
for语句 for语句格式: for ( init_expr ; boolean test_expr ; alter_expr) { statement or block; } 执行过程
for语句
计算表达式init 表达式test 值 =true 语 句 =false
计算表达式alter
结束for语句
while语句 whiwk.baidu.come语句格式
init_statement; while ( boolean_expr ){ statement or block; alter_expr; }
break语句 使用break语句可以终止switch语句或者循环 语句的执行
continue语句 continue语句用来略过循环中剩下的语句,重 新开始新的循环,这和break语句的完全跳出循 环是不一样的。 continue 仅仅出现在while/do/for语句的 子语句块中。
带标号的break/continue
问题 盈盈为了考验令狐冲夺冠的决心,要他说一百遍 “我能行!”
System.out.println("第1次说:我能行!"); 100条 System.out.println("第2次说:我能行!");
……
System.out.println("第100次说:我能行!");
盈盈要他说10000遍“我是最棒的!”,怎么办 ?
public class BreakDemo2{ public static void main(String[] args){ flag:for(int j=2;j<20;j+=5){ System.out.println("befor break: "+j); for(int i=0;i<10;i++){ System.out.println(“i is: "+i); if(i==5)break flag; } System.out.println("after break: "+j); } } }
if ( boolean expression ){ statement or block; } 或者: if ( boolean expression ){ statement or block; } else if (boolean expression) { statement or block; } else { statement or block; }
if和switch的异同 相同点
都可以实现多分支结构
不同点 switch
只能处理等值的条件判断,且switch表达式是整型或 字符型,case判断值必须是常量
多重if
处理在else部分还包含其它if结构,特别适合某个变 量处于某个区间时的情况
分析错误 final short a = 3; int b = -1; for (int c=0; c<5; c++) { switch( c ) { case b: System.out.print(" branch 1"); case a-1: System.out.print("branch 2"); case a: System.out.print("branch 3"); }
首先计算表达式init_expr,接着执行表达式test_expr, 若表达式test_expr的值 = ture,则执行语句statement ,接着计算表达式alter_expr,再判断表达式test_expr 的值;依此重复下去,直到表达式test_expr的值=false
课堂练习 编写程序,用for循环计算 1+3+5+7+…+99的值,并输 出计算结果。
问题解决
public class HelloAccp4 { public static void main(String[ ] args) { int score = 89; if ( score > 90 ) { System.out.println("师父说:不错,给你《独孤九剑》剑谱"); }else{ System.out.println("师父说:不孝徒,上思过崖闭关思过去吧"); } //令狐冲的语文成绩
case 常量 2: 语句; break;
如果等于常量1
如果等于常量2
default:
语句; }
如果没有找到匹配的值
问题解决
int mingCi = 1; switch (mingCi){ 第一名的情况下 case 1: System.out.println("出任武林盟主"); break; 第二名的情况下 case 2: System.out.println("出任武当掌门"); break; 第三名的情况下 case 3: System.out.println("出任峨嵋掌门"); break; default: 其他情况下 System.out.println("被逐出师门"); }