三、顺序结构和条件结构
顺序结构
条件结构
顺序结构是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行的。总的来说:写在前面的先执行,写在后面的后执行
键盘输入数据
内容,数据都是在代码中写死的,在真正的项目实践中数据值肯定是变化的,有必要学习如何输入数据。如何输入数据呢?需要三步:
之前的导入java.util.Scanner包;
语句import java.util.Scanner;
这句话要放在class定义的上面。
创建对象;
语句 Scanner sc = new Scanner(System.in);
接收数据;
int a = sc.nextInt();
String name = sc.nextLine();
分支语句根据一定的条件有选择地执行或跳过特定的语句
Java分支语句分类
if语句
switch 语句
If语句
从英文单词来看,if就是如果,那么我们想想,我们现实生活中的例子,女生向你表白
if (布尔表达式)
{
代码块;
}
在执行时,判断布尔表达式的值,如果结果为true则执行下面的代码块,否则直接跳过代码块 if语句控制的语句体如果是一条语句,大括号可以省略;如果是多条语句,就不能省略,建议永远不要省略
我们生活中,还有什么样的条件语句呢?如果女生a跟女生b同时向你表白。
if-else语句
if (布尔表达式
{
代码块1;
}
else
{
代码块2;
}
布尔表达式, 不是true就是false;
我们生活,还有什么样的条件语句呢?当有更多的条件需要判断时,我们还可以使用更为复杂的if-else-if结构
if-else-if语句
if (布尔表达式1)
{
代码块1;
}
else if (布尔表达式2)
{
代码块2;
}
Elsei f ...
[else
{
代码块n;
}]
布尔表达式为true时,执行内部代码, 结束分支语句; 为false时,进入下面的判断,与上面一致; 当所有条件都不满足时,执行最后的else
在上述三种if语句中,代码块当然不会仅限于一般的表达式语句,还可以是其它类型的语句,比如,可以在一个if语句中嵌套另一个if语句
if语句嵌套(以if-else为例)
if (布尔表达式1)
{
if(布尔表达式2)
{
}
else {
}
}
else {
代码块2;
}
三元运算符
三元运算符 <test> ? <resultIfTrue>: <resultIfFalse>
<test>可得到一个布尔值
运算符的结果根据这个值来确定是<resultIfTrue> ,
还是<resultIfFalse>
string resultString = (myInteger < 100) ? "小于100": "大于或等于 100";
switch语句
当判断条件为多种状态时,我们使用if-else-if来解决,但这不仅会使代码的编写非常繁琐,还会影响到代码的可读性 switch语句能够有效的避免这种情况所带来的冗长代码 switch语句
switch (表达式)
{
case 常量1:
代码块1;
break;
case 常量2:
代码块2;
break;
…
default :
代码块n;
break;
}
switch语句 在switch语句执行时,首先计算表达式的值,然后将其与case后的常量依次进行比较,
如果找到相匹配的值,则进入到该常量下的代码块执行,直至遇到break结束整个switch语句。
如果常量中没有找到匹配值,则进入到default代码块执行。
在这里我们需要注意的是,虽然break语句不是必须的,但在执行过程中,如没有遇到break,将继续执行一下case后的代码块,直至break或整个switch语句结束
switch语句有关规则
switch(表达式)中表达式的返回值必须是下述几种类型之一:int, byte, char, short, 枚举, 字符串String(JDK7之后支持)case子句中的值必须是常量,且所有case子句中的值应是不同的;
default子句是任选的;
break语句用来在执行完一个case分支后使程序跳出switch语句块;
总结
if执行过程
if是选择结构,有三个形式,它们执行是条件成立只会选一个执行。
switch执行过程
一、计算
二、找case
三、从找到的case开始,往下全部执行,直到遇到break结束switch语句
四、若没找到case,则从default开始往下全部执行,若没default则结束switch语句。