您的位置:首页 > 编程语言 > Java开发

java第四章学习笔记:流程控制---java世界的航行舵手

2018-03-11 16:10 288 查看
【因为每一章都篇幅比较长(10多页,难免有的地方会写错字,如发现请指正,本人不胜感激)】

【温馨提示:本人有java基础,算是回顾性的做这系列笔记方便以后再次复习这些细小的点,所有知道的就没往上写】

上一章是各种运算符介绍,但在程序开发中只有运算符是不够的,还需要流程控制,主要包括:分支语句、循环语句、循环控制语句。

4.1 if 条件语句

【分支语句:是程序在不同情况下执行不同代码】

java分支语句有两种:if条件语句和switch多分支语句

[需注意一个等号是赋值,两个等号才是条件判断]

eg:这个例子容易看错



下面是多层嵌套



4.2 Switch 多分支【没有break它会一直执行下去】

除了if 嵌套使用多分支外,可用Switch代替

基本语法:

switch(判断表达式)

{

case 表达式a: 匹配执行代码

break;

case 表达式b: 匹配执行代码

break;

……..

default:

与所有case都不匹配时执行的代码

}

default为可选部分,不需要的时候可以没有



4.2.2 合法的判断表达式

switch语句的圆括号中表达式需遵循下列规则

1、基本类型型表达式

2、枚举类型型表达式

1、基本类型型表达式

要求返回值类型必须是int兼容的即表达式来行只能是byte,short,char,int这四种(其中byte、char,short可以自动提升为int)



不break的结果也不会像我想的继续执行。B等,C等那样

2、枚举类型型表达式



不能写skyColor.red是因为系统自动能从skyc得到red属于哪种enum类型

4.2.3 合法的case表达式要求(三个)

1、与判断表达式匹配;

2、自身是常量

3、不能有两个相同的case

1、与判断表达式匹配:即case后面的表达式必须与圆括号中switch中的表达式具有相同类型,eg:
![这里写图片描述](https://img-blog.csdn.net/20180311151349721?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2VpeGluXzM5ODg1Mjgy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
2、自身是常量
case 后的表达式必须是常量,即它的值是确定的,由此得到,这个值只能是字面常量或者是final的变量咯 eg:
![这里写图片描述](https://img-blog.csdn.net/20180311151922512?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2VpeGluXzM5ODg1Mjgy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
3、不能有两个相同的case
![这里写图片描述](https://img-blog.csdn.net/20180311153108614?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2VpeGluXzM5ODg1Mjgy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)


4.3 while循环语句

重复执行相同的代码,java中三种实现循环流程的语句:

1、while语句(条件满足才执行)

2、do-while语句(限制性一次循环体再计算表达式值即至少执行一次)

int a=3;//打印小于10
while(a<10)//此处必须为boolean型
{
System.out.println("a:"+a);
a++;
}
do
{
System.out.println("do a is :"+a);
a++;
}
while(a<4);//有分号,表示循环结束(先执行do导致a=4)
System.out.println("now a is "+a);
do while(a<12)
{
System.out.println("do while joint to use"+a);
a++;

}
while(a<14);


运行结果:



知道执行次数,那么就用for

public static void main(String args[])
{
for(int i=init();condition(i);i++,update(i))//三段之间用分号隔开
{
System.out.println("循环体"+i);
}
}
public static int init()//此方法必须也是static的
{
System.out.println("初始化:");
return 0;
}
public static boolean condition(int i)
{
System.out.println("条件表达式"+i);
return i<2;
}
static void update(int i)
{
System.out.println("更新表达式"+i);
}


运行结果:



4.6 break中断语句

label:标号语句,break跳出外层循环问题

for(int i=0;i<2;i++)
{
System.out.println("外部i循环"+i);
label1:
for(int j=0;j<3;j++)
{
System.out.println("内部循环j"+j);
break label1;
}
}


运行结果:



java中的goto只是一个关键字,不是一个语句,不能出现在代码中

4.7 continue继续语句 【将一些不满足的】

continue也是起中断循环的作用,但与break不同的是,它只中断当次循环,当continue执行时,本次循环结束,进入条件判断,若条件满足。则进入下一次循环,通常与if连用,eg:



也可以配合标号使用



这将是死循环,因为j无法++,i永远等于0因为执行到continue之后直接跳出然后继续判断是否满足条件

第四章完!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: