流程控制语句详解
2018-01-08 20:28
148 查看
一.语句
1.使用分号分隔的代码就称作为一条语句,语句是否结束是以分号为标准的。2.没有写任何代码,只是一个分号的时候,也是一条语句,称作空语句。
二.顺序语句
1.按照代码顺序从上往下执行所有的代码就是顺序语句。三.if(判断语句)
1.if判断语句的格式:(1)格式一:适用于只有一种情况的时候使用
if(判断的条件){ 符合条件执行的代码; }
(2)格式二:适用于两种情况下去使用
if(判断条件){ 符合条件执行的代码; }else{ 不符合条件执行的代码; }
(3)格式三:适用于多种情况下去使用
if(判断条件1){ 符合条件1执行的代码 }else if(判断条件2){ 符合条件2执行的代码 }else if(判断条件3){ 符合条件3执行的代码 }......else{ 都不符合上述 的条件执行的代码 }
2.if语句要注意的细节:
(1)如果符合条件后只有一个语句需要执行,那么可以省略大括号。但是建议不要省略,因为结构不清晰。
(2)if语句的判断条件后不能添加分号,否则会影响到执行的效果。
3.if else语句有点类似于三元运算符,其实三元运算符是if else的一种简写格式。
4.if语句常见的错误:
(1)忘记必要的括号:
如果代码块中只有一条语句的时候,可以省略花括号,但是当花括号将多条语句括在一起时,花括号就不能再省略。
(2)if语句后出现分号
double radius = 0; double area; if(radius > 0);{ area = radius*radius*3.14; System.out.println("The area"+"is"+area); }
注意:这是一个逻辑错误,编译和运行都不会报错,只是不会出现想要的结果。相当于判断符合条件后,执行一个空语句。(分号代表一条语句,什么都不写就是一条空语句)
double radius = 0; double area; if(radius > 0){}{ area = radius*radius*3.14; System.out.println("The area"+"is"+area); }
5.实例:
if语句只会选择条件最先成立的那条路,所以下述实例只会打印出一句hello.
class Demo1{ public static void main(String[] args){ int num = 50; if(num > 10){ System.out.println("hello"); }else if(num > 20){ System.out.println("world"); }else if(num > 30){ System.out.println("TYUT"); }else{ System.out.println("HaHa"); } } }
运行结果如下图所示:
四.switch(选择判断语句)
1.switch语句的格式:switch(option你的选择){ case 值1: 符合值1执行的代码; break; case 值2: 符合值 2执行的代码; break; case 值3: 符合值 3执行的代码; break; case 值4: 符合值 4执行的代码; break; ...... default: 你的选择都不符合上述的选项时执行的代码; }
2.switch语句要注意的事项:
(1)switch语句使用的变量只能是byte、char、short、int、String数据类型。String数据类型是从jdk7.0的时候才开始支持的。
(2)case后面跟的数据必须是一个常量。
(3)在switch语句中,case与default之间没有先后顺序,不管代码的顺序如何,永远都是会先判断case语句,然后没有符合的情况下才会去执行default语句。
(4)switch语句停止的条件是遇到了break关键字或者是结束switch语句的大括号。
(5)如果匹配的case或者default没有对应的break,那么程序会继续向下执行,运行可以执行的语句,直到遇到break或者switch结尾结束。
注意:此处的程序继续向下执行,指的并不是从程序的开头执行,而是按照代码的顺序从这个语句开始从上往下执行所有的代码,直到遇到break或者是结束switch语句的大括号为止。
3.switch语句的优缺点:
(1)优点:switch语句的结构清晰。
(2)缺点:如果判断的条件是一个区间范围,那么使用switch操作就非常的麻烦了。
注意:
(1)if--else if--else if--else语句与switch语句非常的相似。
(2)case后跟的是冒号:。
(3)每个case中的执行语句后一定要加上break;。
(4)case就像选择题的答案之一。break就是如果该答案正确那么就可以跳出switch了,意思就是说已经找出了正确的答案了,那么这道题也就做完了。如果case没有匹配接着进行下一个case匹配,直到匹配为止。最后如果都没有匹配上,那么switch给提供了一个默认的答案,就是default。
五.while循环语句
1.while语句格式:while(循环的条件){ 循环语句; }
2.while循环语句要注意的事项:
(1)while循环语句一般是通过一个变量控制其循环的次数。
(2)while循环语句的循环体代码如果只有一个语句的时候,那么可以省略大括号。但是也是不建议省略。
(3)while循环语句的判断条件后面不能跟有分号,否则会影响到执行效果。
3.实例:
(1)实例1:
在控制台上打印5句hello world。
class Demo3{ public static void main(String[] args){ int count = 0; while(count < 5){ System.out.println("Hello world!"); count++; } } }
注意:count++在输出语句的上面或者下面结果都是一样的,因为都是先判断再+1。
(2)实例2:
class Demo3{ public static void main(String[] args){ int x = 0; while(x < 5){ System.out.println("Hello world!"); } } }
上述代码如果是在dos里编译和运行,是不会停止的,除非系统死机,这是死循环,因为x < 5永远为真。
(3)实例3:
class Demo3{ public static void main(String[] args){ int count = 0; while(count < 5);{ System.out.println("Hello world!"); } } }
上述代码编译运行后,里面的输出语句不会执行,因为while(count < 5);,分号相当于空语句,到分号为止while循环语句已经结束,相当于while(count < 5){ },是一个死循环,因为变量永远是0,执行了空代码。
(4)实例4:打印出1-100之间的奇数。
方式一:
class Demo4{ public static void main(String[] args){ int x = 1; while(x < 100){ System.out.println(x); x = x+2; } } }
方式二:
class Demo5{ public static void main(String[] args){ int x = 1; while(x < 100){ if(x%2 != 0){ System.out.println(x); } x++; } System.out.println(); } }
(5)实例5:计算1+2+3+……+100的总和
class Demo5{ public static void main(String[] args){ int num = 1; int sum = 0; //定义一个变量用于保存每次相加的结果 while(num <= 100){ sum += num; num++; } System.out.println("sum = "+ sum); } }
运行结果如下图所示:
六.do while循环语句
1.现实开发中很少用,主要还是用while,因为while语句更符合人的正常思维逻辑。2.格式:
do{ }while(判断条件);
3.while循环语句与do-while循环语句的区别:
while循环语句是先判断后执行循环语句的;do-while循环语句是先执行,后判断,不管条件是否满足至少会执行一次。
注意:do-while循环语句中不管条件是否满足至少会执行一次,但是它的判断条件不受这句话的影响,也就是说不管是用while还是do-while,他们的判断条件都是一样的,如果while是count<5,那么换成do-while它的判断条件还是count<5。
4.实例:
(1)实例1:使用do-while循环在控制台上打印5句hello world。
class Demo6{ public static void main(String[] args){ int count = 0; do { System.out.println("Hello world"); count++; }while(count<5); //切记不要忘记加分号。 } }
运行结果如下图所示:
(2)实例2:使用do-while循环语句算出1-100之间偶数的总和。
class Demo7{ public static void main(String[] args) { int num = 1; int sum = 0; //定义一个变量用于保存每次相加的总和 do{ if(num%2==0){ sum += num; } num++; }while(num<101); System.out.println("sum = "+ sum); } }
运行结果如下图所示:
、
七.for循环语句
1.for循环语句的格式:for(初始化语句;判断语句;循环后的语句){ 循环语句; }
2.for循环语句要注意的事项:
(1)for( ; ; )这种写法是一个死循环语句,相当于while(true);for循环括号中的两个分号不能省略,省略一个就会报错。
(2)for循环语句的初始化语句只会执行一次,只是在第一次循环的时候执行而已。
(3)for循环语句的循环体语句只有一句的时候,可以省略大括号不写,但是不建议省略。
(4)以后在开发中如果看到二维图形一定是两层for循环,先进行纵向分析,外层循环控制纵向,分析有多少行;再进行横向分析,内层循环控制横向,分析有多少列。
3.for循环语句的执行流程:
class Demo7{ public static void main(String[] args) { for (int x = 0; x < 5; x++) { System.out.println("hello java"); } } }
执行for 循环,当读到x=0 的时候,在内存中开辟了空间,定义变量x 赋值为0。接着进行条件判断 x<5,为真,这个时候对满足条件后执行了循环体的内容System.out.println("hello java");当循环体执行完毕之后,执行x < 5;后的表达式即 x++ 。x自增后变为了1 ,再次进行判断 x<5 (int x=0 只执行一次),如果为真就再次运行System.out.println("hello
java");如果为假,for循环结束。
4.实例:
(1)实例1:使用for循环语句在控制台上打印出5句hello world
class Demo8{ public static void main(String[] args){ for(int count = 0;count<5;count++){ System.out.println("Hello world"); } } }
运行结果如下图所示:
相关文章推荐
- 详解JavaScript的流程控制语句
- ORACLE PL/SQL编程详解之三:PL/SQL流程控制语句
- Swift流程控制之循环语句和判断语句详解
- Swift流程控制之循环语句和判断语句详解
- 详解JavaScript的流程控制语句
- 详解JAVA流程控制语句
- [推荐]ORACLE PL/SQL编程详解之三:PL/SQL流程控制语句(不给规则,不成方圆)
- Oracle PL/SQL编程详解之三: PL/SQL流程控制语句
- [推荐]ORACLE PL/SQL编程详解之三:PL/SQL流程控制语句(不给规则,不成方圆)
- [推荐]ORACLE PL/SQL编程详解之三:PL/SQL流程控制语句(不给规则,不成方圆)
- python学习 流程控制语句详解
- [推荐]ORACLE PL/SQL编程详解之三:PL/SQL流程控制语句(不给规则,不成方圆)
- [推荐]ORACLE PL/SQL编程详解之三:PL/SQL流程控制语句(不给规则,不成方圆)
- java流程控制语句(详解)
- ORACLE PL/SQL编程详解之三:PL/SQL流程控制语句(不给规则,不成方圆)
- python学习 流程控制语句详解
- ORACLE PL/SQL编程详解之三:PL/SQL流程控制语句
- 流程控制 if语句和switch语句详解
- ORACLE PL/SQL编程详解之三: PL/SQL流程控制语句
- 控制流程语句