day03流程控制语句Word下载.docx

上传人:b****4 文档编号:17842365 上传时间:2022-12-11 格式:DOCX 页数:35 大小:115.60KB
下载 相关 举报
day03流程控制语句Word下载.docx_第1页
第1页 / 共35页
day03流程控制语句Word下载.docx_第2页
第2页 / 共35页
day03流程控制语句Word下载.docx_第3页
第3页 / 共35页
day03流程控制语句Word下载.docx_第4页
第4页 / 共35页
day03流程控制语句Word下载.docx_第5页
第5页 / 共35页
点击查看更多>>
下载资源
资源描述

day03流程控制语句Word下载.docx

《day03流程控制语句Word下载.docx》由会员分享,可在线阅读,更多相关《day03流程控制语句Word下载.docx(35页珍藏版)》请在冰豆网上搜索。

day03流程控制语句Word下载.docx

是5的倍数"

);

}

if(nextInt%2==0){

是2的倍数"

}

2.格式二

}else{

案例:

判断一个整数是奇数还是偶数

Scannersc=newScanner(System.in);

System.out.println("

请输入一个整数:

"

if(nextInt%2==0){

是偶数"

}else{

是奇数"

over"

同样道理如果花括号中只有一条语句,那么花括号可以省略不写,初学者不推荐省略。

if(nextInt%2==0)

else

观察发现ifelse语句有点类似于三元运算符.其实三元运算符是ifelse的一种简写格式.

Public 

intx=0,y=1,b;

//ifelse语句

if(x>

y){

b=x;

b=y;

System.out.println(b);

//1

//3元运算

b=x>

y?

x:

y;

//1

这两种格式是一样的。

ifelse结构简写格式:

变量=(条件表达式)?

表达式1:

表达式2;

三元运算符:

好处:

可以简化ifelse代码。

弊端:

因为是一个运算符,所以运算完必须要有一个结果。

3.格式三

if(判断条件1){

执行的代码块1;

}elseif(判断条件2){

执行语句;

}elseif(判断条件3){

执行语句;

需求:

根据用户定义的数值不同,打印对应的星期英文。

if只能进行一层判断,ifelse只能进行两层判断,那么需要多层判断时呢?

星期可是有7个数的。

如何设计代码?

使用if语句

intx=8;

if(x==1){

星期一"

if(x==2){

星期二"

if(x==3){

星期三"

如果这样设计的话,第一个if语句执行完毕后,第二个语句仍会执行(去判断),是一个顺序结构.那么事实上当前定义的星期之后会有一个.假如,第一个已经符合条件,那么剩余的执行就没有意义了。

属于逻辑错误。

使用ifelse,如果用户输入的是7以外的数据,那么怎么处理?

就需要使用else了

方案2:

使用ifelseif语句

}else 

if(x==2){

if(x==3){

if(x==4){

星期四"

if(x==5){

星期五"

if(x==6){

星期六"

if(x==7){

星期日"

请输入数字1-7"

intx=5;

1"

2"

3"

4"

//4

该if语句不是一个整体,第一个if是一个语句,第二个又是一个语句,最后的ifelse又是一个语句。

if语句特点

1.第二种格式与三元运算符的区别:

三元运算符运算完要有值出现。

好处是:

可以写在其他表达式中。

2.条件表达式无论写成什么样子,只看最终的结构是否是true或者false。

练习1:

根据用户输入的月份,打印出月份所属的季节.

练习2:

根据用户输入的成绩,进行评级,根据学生考试成绩划分ABCD

练习1:

intx=1;

spring"

仔细观察:

发现if和elseif要执行的语句是一样的,可不可以合并呢。

当然是可以的。

怎么合并?

使用逻辑运算符,那么使用哪个逻辑运算符呢,&

肯定不行。

需要全部为真才为真,月份是不可能同时满足的那么使用|连接符号即可。

意思只要其中一个为真,就为真。

另外可以使用短路功能。

if(x==3||x==4||x==5){

if(x==6||x==7||x==8){

Summer"

if(x==9||x==10||x==11){

autumn"

Winter"

月份不存在"

练习2:

void 

main(String[]args){

请输入考试分数:

doublescore=sc.nextDouble();

chargrade;

if(score>

=90.0)

grade='

A'

;

else 

if(score>

=80.0)

B'

=70.0)

C'

=60.0)

D'

F'

你的成绩是:

+grade);

If语句常见的错误:

1.忘记必要的括号:

如果代码块中只有一条语句的时候,可以省略花括号,但是当花括号将多条语句扩在一起时,花括号就不能在省略。

doubleradius=4;

double 

area;

if(radius>

=0)

area=radius*radius*3.14;

Thearea"

+"

is"

+area);

doublearea;

=0){

虽然代码一样多,但是第一个会编译报错(area没有出初始化),第二个正常运行。

就是因为少了花括号。

所以一定要仔细。

2.if语句后出现分号

doubleradius=0;

0);

{

这是一个逻辑错误,编译和运行都不会报错,只是不会出现想要的结果。

相当于判断符合条件后,执行一个空语句。

0){}{

判断闰年

1:

什么是闰年?

可以被4整除不能被100整除,或者可以被400整除,那么这一年就是闰年(leapyear)

请输入年份:

intyear=sc.nextInt();

//判断年份能否被4整除

booleanisLeapYear=(year%4==0);

//年份能被4整除,并且不能被100整除并且使用&

&

(and)

isLeapYear=isLeapYear&

(year%100!

=0);

//年份或者能够被400整除

isLeapYear=isLeapYear||(year%400==0);

if(isLeapYear){

System.out.println(year+"

是闰年!

//简写格式;

if(year%4==0&

year%100!

=0||year%400==0){

3选择判断语句(switch)

switch语句

格式:

switch(表达式)

{

case取值1:

执行语句;

break;

case取值2:

…...

default:

switch语句特点:

1,switch语句选择的类型只有四种:

byte,short,int,char。

2,case之间与default没有顺序。

先判断所有的case,没有匹配的case执行

default。

3,switch语句停止的条件是遇到了break关键字或者结束switch语句的大括号。

4,如果匹配的case或者default没有对应的break,那么程序会继续向下执行,运

行可以执行的语句,直到遇到break或者switch结尾结束。

5,switchcase中的值必须要与switch表达式的值具有相同的数据类型。

而且case后跟的值必须是常量,不能跟变量。

publicstaticvoidmain(String[]args){

intx=3;

switch(x){

case1:

break;

case2:

case3:

default:

ok"

case就像选择题的答案之一。

break就是如果该答案正确那么就可以跳出switch了,意思就是说已经找出了正确的答案了。

那么这道题也就做完了。

如果case没有匹配接着进行下一个case匹配,直到匹配为止。

最后如果都没有匹配上,那么switch给提供了一个默认的答案,就是default。

注意:

case后跟的是冒号:

每个case中的执行语句一定要加break;

练习:

需求2:

根据用于指定的月份,打印该月份所属的季节.

一旦case匹配,就会顺序执行后面的程序代码,而不管后面的case是否匹配,直到遇见break,利用这一特性可以让好几个case执行统一语句.

345spring678sunmer91011autumn1212winter

case4:

case5:

case6:

case7:

case8:

sunmer"

case9:

case10:

case11:

case12:

case0:

winter"

char类型在switch中的使用.

intx=1,y=2;

charch='

*'

switch(ch){

case'

+'

:

x*y="

+(x+y));

-'

x-y="

+(x-y));

+(x*y));

/'

x/y="

+(x/y));

不靠谱"

if和switch语句很像,具体什么场景下,应用哪个语句呢?

如果判断的具体数值不多,而是符号byte,shortintchar四种类型.

虽然2个语句都可以使用,建议使用switch语句.因为效率稍高.

其他情况:

对区间判断,对结果为boolean类型判断,使用ifif的使用范围更广。

if除了能判断具体数值还能判断区间。

switch判断区间会很费劲的。

要写好多case对于运算结果是boolean型的if能判断switch是不能实现的。

例如:

根据学生考试成绩划分ABCDA90-100B80-89C70-79D60-69E0-59。

实际开发怎么选择呢?

如果要对具体数值进行判断,并且数值不多,那么就用switch来完成。

switch的case条件都是编译期整数常量,编译器可以做到表格跳转查询,查找速度快。

但是switch的局限性比较大必须是4种类型,并且值不多。

一般都是使用if。

最后在jdk7中对switch进行了增强还可以判断字符串。

5.0增加了对枚举的判断。

备注:

JDK7.0开始可以使用switch可以使用字符串类型的数据了.

4While循环

需求:

需要打印一行字符串"

hellogzitcast"

,100次

就需要将该语句打印100遍System.out.println("

那么如何解决该问题?

Java提供个一个称之为循环的结构,用来控制一个操作的重复执行。

intcount=0;

while(count<

100){

count++;

System.out.println("

变量count初始化值为0,循环检查count<

100是否为true,如果为true执行循环体(while后{}之间的语句),输出"

语句,然后count自增一,重复循环,直到count是100时,也就是count<

100为false时,循环停止。

执行循环之后的下一条语句。

Java提供了三种类型的循环语句:

while循环,do-while循环和for循环。

1、while语句格式:

while(条件表达式)

定义需求:

想要打印5次helloworld

helloworld"

2、

intx=0;

while(x<

5){

hellojava"

如果是在dos里编译和运行,是不会停止,除非系统死机。

需要ctrl+c来结束。

这就是真循环或者死循环。

因为x<

5永远为真。

x++;

让x自增,那么就会有不满足条件的时候。

循环就会结束。

想要打印出1-100之间的奇数

System.out.println(x);

x=x+2;

publicstaticvoidmain(String[]args){

intx=1;

while(x<

100){

if(x%2!

=0){

System.out.print(x);

}

System.out.println();

计算1+2+3+4+5+6+7+8+9的值

intsum=0;

inti=1;

while(i<

10){

su

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 唐诗宋词

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1