day03-选择语句和循环语句
3.1 顺序结构(重点)
如果代码里没有流程控制,程序是按照书写的格式从上而下一行一行执行的,一条语句执行完之后继续执行下一条语句,中间没有判断和跳转,直到程序的结束。
public class SequenceDemo{
public static void main(String[] args) {
System.out.println("A");
System.out.println("B");
System.out.println("C");
System.out.println("D");
}
}
无论代码怎么运行,程序的输出顺序总是ABCD。
3.2 选择结构(重点)
选择结构也被称为分支结构。代码根据逻辑判断,存在多个不同的结果,此时就会产生不同的选择,不同的选择执行不同的代码。Java中存在两种选择结构语句:
3.2.1 if (重点)
语义:如果。。。那么。。。
if(boolean表达式)
{
语句体;
}
3.2.2 if-else(重点)
语义:如果。。。那么。。。否则。。。
if(boolean表达式) {
语句体1;
} else {
语句体2;
}
3.2.3 if-else if-else(重点)
语义:如果。。。那么。。。如果。。。那么。。。否则。。。
多选一
if(boolean表达式1)
{
语句体1
}
else if(boolean表达式2)
{
语句体2
}
//...可以有多个else if
else
{
上述条件都为false,执行该语句体
}
在这里插入图片描述
3.3.2 switch语句(掌握)
上面练习使用if-elseif-else完全没问题,对于这种判断条件是否等于某一个数值的,我们有另一种更简单的分支语句——switch语句,其格式如下:
switch(整型表达式){
case A值:
语句体1; break;
case B值:
语句体2; break;
case C值:
语句体3; break;
...多个case语句
default:
以上值都不满足时,执行此语句;
break;//可以省略
}
使用注意:
-
整型表达式的类型:byte,short,char,int
-
Java5开始支持枚举
-
Java7开始支持String
-
case之后的表达式结果必须是常量
-
case表示执行代码的入口,一旦进入某个入口后,代码会忽略掉后面其他case,代码会一直往下执行,直到遇到break或return。(switch的穿透效果)
4. 循环结构
在满足循环条件的情况下,重复执行某一段代码,这段被重复执行的代码被称为循环体语句。
-
while语句
-
do while语句
-
for语句
4.1 while(重点)
while通常在不明确循环次数的时候使用
while(boolean表达式) {
循环体;
}
4.2 do while(了解)
do
{
循环体;
}
while(boolean表达式);
while和do while的区别
do while是先执行后判断,即使判断条件为false,该循环至少会执行一次。
4.3 for(重点)
通常在明确循环次数的时候使用
for(初始化语句; boolean表达式; 循环后操作语句)
{
循环体;
}
for循环:循环执行重复的操作
for (初始化语句;boolean表达式;循环后的操作) {重复执行的操作;}
1.初始化语句执行一次
2.执行boolean表达式,如果为true,执行循环体的语句,反之,结束循环
3.循环体的代码执行完毕后,再执行循环后的操作(邇常是自增或者自减的操作)
4.循环后的操作执行完毕后,再执行步骤2
4.4 控制循环(重点)
4.4.1 break(重点)
break表示结束当前所在的循环。
需求:从1输出到10,当迭代变量为7,就停止循环
public class App {
public static void main(String[] args) {
for (int i = 1; i <= 10; i++) {
if(i == 7){
break;//结束当前循环
}
System.out.println("第" + i);
}
}
}
输出结果:
第1
第2
第3
第5
第6
注意:break之后的语句执行不了,所以不能编写。
4.4.2 return(重点)
return表示结束当前循环所在的方法,方法都结束了,循环也就结束了。
public class ReturnDemo {
public static void main(String[] args) {
System.out.println("begin...");
for (int i = 1; i <=10; i++) {
if(i == 7){
return;//换成break
}
System.out.println("第" + i);
}
System.out.println("begin...");
}
}
观察上述程序运行结果,分析return和break的区别。
4.4.3 continue(重点)
continue表示跳过当前这一次循环,执行循环之后的操作语句,进入下一次循环操作。
需求:从1输出到10,不要输出4。
public class ContinueDemo {
public static void main(String[] args) {
for (int i = 1; i <=10; i++) {
if(i == 4) {
continue;
}
System.out.println("第" + i);
}
}
}
输出结果:
第1
第2
第3
第5
第6
第7
第8
第9
第10
4.5 嵌套循环(掌握)
循环解决的是:某一个操作需要重复执行,如果一个重复的操作需要做N次,此时得使用嵌套循环。
注:可以把内层循环看成是一个整体。
打印直角三角形
public class LoopInLoopDemo{
public static void main(String[] args) {
for (int line = 1; line <= 5; line++) {
for (int i = 1; i <= line; i++) {
System.out.print("*");
}
System.out.println();
}
}
}
输出结果:
*
**
***
****
*****