java的条件结构以及流程控制
来源:互联网 发布:淘宝怎么做全屏海报 编辑:程序博客网 时间:2024/05/16 13:44
一、条件结构
1.单独的 if
顾名思义,if 的中文意思是"如果" 表示判断;即有选择、就会有判断条件,所以由 if 组成的语句块称为条件结构。
使用格式:if(表达式){语句;}
执行原理:先判断条件表达式是否为真(即是否成立),表达式为真则执行花括号{ }之间的语句,否则不执行。
细节注意:不管表达式如何复杂,其结果必须为boolean类型的值,即要么是true、要么是false,而不能是其他值
2.if---else结构
格式:if(表达式){语句;}else{语句;}------------------>如果.......否则就.......
用于涉及两个分支的选择问题
执行原理:先判断表达式是否为true、为true则执行 if 的语句体,否则就执行else的语句体。
推广:多重的else if结构
格式:if(表达式1)
{
语句1;
}
else if(表达式2)
{
语句2;
}
else if(表达式3)
{
语句3;
}
else
语句4;
执行原理:首先计算表达式1 的结果看是true 还是 false
如果是true 就执行 语句1
如果是false 向下到 else if中 来判断表达式2 的结果是true 还是false
如果是true 就执行 语句2 ......
注意: 最后一个 else 可以省略 但是不建议省略 可以对范围外的错误值进行提示 补充
应用举例:编写一个程序判断某班的数学成绩的等级 >=90---->A >=80----->B >=70----->C >=60----->E
class Demo01
{
public static void main(String[] args)//程序运行的入口
{
int math=60;//定义整型变量
if(math>=90)//条件判断
System.out.println("A");
else if(math>=80)
System.out.println("B");
else if(math>=70)
System.out.println("C");
else if(math>=60)
System.out.println("D");
else
System.out.println("E");
}
}
3.条件结构中的多分支选择语句:switch-----case
格式: switch(表达式)
{
case 值1:
语句体1;
break;
case 值2:
语句体2
break;
......
default:
break; //可以不写
}
举一个简单的例子:由键盘输入月份,判断其对应的季节
java.util.Scanner;
class Demo02
{
public static void main(String[] args)//程序运行的入口
{
Scanner sc=new Scanner(System.in);
System.out.println("请输入月份");
int month=sc.nextInt();
switch(month)//多分支选择
{
case 3:
case 4:
case 5:System.out.println("春季");break;
case 6:
case 7:
case 8:System.out.println("夏季");break;
case 9:
case 10:
case 11:System.out.println("秋季");break;
case 12:
case 1:
case 2:System.out.println("冬季");break;
default:
System.out.println("无效月份");break;
}
}
}
执行流程:
先计算表达式的值
然后和case后面的常量匹配,如果相同,就执行对应的语句 否则执行default控制的语句
switch(表达式)
java1.6(包括) 之前 类型 byte short int char 枚举
java1.7之后 多了一个 String类型
思考问题:switch分支在什么情况下会结束?
switch分支 有两种情况结束分支
1.遇到break;就结束
2.遇到switch的 } 花括号 结束
注意事项:
a.case后面只能是常量,不能是变量,而且多个case后面的值不能出现相同的
b.default可以省略 但是不建议省略 因为它的作用是对不正确的情况给出提示 补充
c.break可以省略码?
最后一个可以省略,其他的最好不要省略
会出现一个现象较 case穿透(多个答案对应同一个结果)
switch case 小情况
1.switch default:可以写在 case前面 先走case 最后才是default
default在case前面 没有break;的时候 执行default之后 向下继续执行 将不再判断case值是否匹配
直到碰到break; 或者}结束
if - else和 switch - case 区别?
(1).适用场景
要判断区间范围 用 if else --> 0<x<18
要判断单个的定值 用 switch-case (值不多的时候 switch比if快 效率略高)
(2).语句的表达式值类型不同
if(表达式) --> boolean true false
switch(表达式) --> byte short int char 枚举 Strin
二、循环结构即流程控制
循环解决的问题:重复的行为 反复出现 就可以使用循环 来处理
在java语言中共有三大循环:while循环、do-while循环和for循环,都能解决重复的行为,但它们又各有不同。
1.while循环
语句格式:
初始化语句;
while(判断条件语句)
{
循环体语句;
控制条件语句;//不一定要写 但不写就死循环 没有跳出循环的可能性了
}
执行流程:
1.执行初始化语句
2.执行判断条件语句 看其返回值是true 还是false
如果是 true: 就继续执行 循环体中的内容
如果是 false: 就结束循环
3.执行循环体语句
4.执行控制条件语句
5.回到2继续
.2.do-while循环
语句格式:
初始化语句;
do{
循环体语句;
控制条件语句;
}while(判断条件语句);
执行流程:
(1).执行初始化语句
(2).执行循环体语句
(3).执行控制条件语句
(4).执行判断条件语句
如果是true 就继续循环执行
如果是false 就结束循环
(5)回到2继续
3.for循环
语句格式:
for(表达式1;表达式2;表达式3)
{
语句4;
}
执行流程:
(1).初始化语句
(2).判断条件语句
true --> 循环体
false -->结束循环
(3).执行循环体
(4).控制条件语句
(5).回到2继续
//i++ --> i = i+1 是在内存中申请了另一片区域 存了一下i+1的值 然后赋给i
//++i --> 是直接给i这个变量赋值 效率高一点
注意事项:
.判断条件语句 无论简单还是复杂 结果必须是boolean
.循环体语句如果是一条语句,花括号可以省略,如果是多条语句,就不可以省略 建议永远不要省略
for,while和do-while三种循环的异同点
.do-while循环至少执行一次循环体
.for循环和while循环 初始化变量的作用域不同
for循环只在循环体内部可以使用
while在方法体中可以继续使用
避免死循环:
while(true){
}
for(;;){
}
举一个简单的例子:分别用三种循环来实现;
编写程序使用循环结构在控制台打印出10次 Hello word!
使用while循环
class Demo03
{
public static void main(String[] args)//程序运行的入口
{
int i=0;//定义整型变量i
while(i<10)//循环10次
{
System.out.println("Hello word!");//输出"Hello word!"
i++;//循环次数自加
}
}
}
使用do while循环:
class Demo04
{
public static void main(String[] args)//程序运行的入口
{
int i=0;//定义整型变量i
do
{
System.out.println("Hello word!");//打印"Hello word!"
i++;//循环次数自加
}while(i<10);//循环
}
}
使用for循环
class Demo05
{
public static void main(String[] args)//程序运行的入口
{
int i=0;//定义整型变量i
for(;i<10;i++)//循环10次
{
System.out.println("Hello word!");//打印出"Hello word!"
}
}
}
- java的条件结构以及流程控制
- java流程控制条件判断
- PHP流程控制之条件结构
- java的选择结构switch和循环结构for while do while以及流程控制语句break continue return
- JAVA流程控制 循环结构
- 快读掌握JAVA流程控制的循环结构
- php流程控制语句以及条件判断中的数据类型转换
- 流程控制--if条件
- JAVA学习(四):Java流程控制语句(顺序结构、if条件语句、switch条件语句、循环语句与跳转语句)
- java的流程控制
- java的流程控制
- Java的流程控制
- Java的流程控制
- Java的流程控制
- Java流程控制之选择结构
- Java流程控制之循环结构
- java详解 --- 流程控制之循环结构
- Java基础知识02-流程控制结构
- express入门(3)-静态文件
- 最全面的Java多线程用法解析
- 阿里巴巴社招内推:534663231
- General List
- MVN常用指令
- java的条件结构以及流程控制
- C Primer Plus(第6版)第六章答案
- CF Round #424( Div.2) C. Jury Marks 【思维+STL】
- 解决mysql服务存在,显示读取失败,错误代码2的问题
- Python返回数组/List长度的方法
- Spotfire使用经验——热图的创建(辛苦工作十小时的成果分享)
- 基本概念
- Spring 事务隔离级别!!!
- CF Round #424( Div.2) D. Office Keys 【二分||DP】