顺序结构
将代码从上到下依次执行就叫做顺序结构
public class Demo{
public static void main(String[] args){
System.out.println("故人西辞富士康");
System.out.println("要学技术到蓝翔");
}
}
-
if第一种格式
在java选择结构
一种if
一种switch
if有三种格式if第一种格式(单条件判断)
if(条件){ 执行语句; } 条件:只能是true/false
执行流程:
a. 程序对条件进行判断
b. 如果条件是true,执行条件后面的大括号里面的执行语句
如果条件是false,跳出大括号
特点:
要么 执行语句体 要么直接结束
二选一
*/
public class Demo{
public static void main(String[] args){//定义一个变量表示性别 boolean sex = false; System.out.println("if ---- start"); //判断 if(sex){ System.out.println("上厕所
-
List item
");
}
System.out.println(“if ---- end”);
System.out.println(“回来上课”);
}
}
4. if第二种格式
/*
if第二种格式(互斥条件判断)
if(条件){
执行语句1;
}else{
执行语句2;
}
执行流程:
a.程序先判断 条件是否成立
b.如果条件true,将if后面的大括号里面的执行语句1执行一下
如果条件false,将else后面的大括号里面的执行语句2执行一下.
c.不管是哪个语句执行都结束整个if
特点:
二选一
要么执行语句1,要么执行语句2
*/
public class Demo{
public static void main(String[] args){
//定义一个变量boolean
boolean sex =true;
//使用if进行两个操作中,选一个
System.out.println(“if ----start”);
if(sex){//true
System.out.println(“进男厕所”);
}else{
System.out.println(“进女厕所”);
}
System.out.println(“if ----end”);
System.out.println(“回来上课”);
}
}
5. if的第三种格式
/*
if第三种格式(多条件判断)
if(条件1){
执行语句1;
}else if(条件2){
执行语句2;
}...else if(条件n){
执行语句n;
}else{
执行语句n+1;
}
执行流程:
a.程序 判断 条件1
如果条件1 为true 那么执行条件1后面的大括号里面的执行语句1
如果条件1 为false 跳过执行语句1
b.程序 判断 条件2
如果条件2 为true 那么执行条件2后面的大括号里面的执行语句2
如果条件2 为false 跳过执行语句2
c.依次判断
d.如果else前面的所有条件都不成立 ,那么执行else 就执行执行语句n+1
注意 :依次判断每一个条件是否成立,如果哪个条件成立
就执行该条件对应的执行语句
就跳出if
都不成立就执行else
特点:
多选一
指定考试成绩,判断学生成绩等级
90-100 优秀
60-89 合格
60以下 不合格
数据输入错误 非法
*/
public class Demo{
public static void main(String[] args){
//定义一个变量int接收成绩
int num = 120;
//使用if第三种格式进行判断
System.out.println(“if----start”);
if(90 <= num && num <= 100){
System.out.println(“优秀”);
}else if(60 <= num && num <= 89){
System.out.println(“合格”);
}else if( 0<= num && num <=59){
System.out.println(“不合格”);
}else{
System.out.println(“数据非法”);
}
System.out.println(“if----end”);
}
-
switch基本用法
/*
所有switch能做的,if肯定能做,但是if能做的switch不一定能做switch格式
switch(表达式){
case 常量1:
执行语句1;
break;
case 常量2:
执行语句2;
break;
…
case 常量n:
执行语句n;
break;
default:
执行语句n+1;
break;
}
switch: 程序要进行选择
表达式: 计算的结果是一个值
类型只能是 byte,char,short,int
还可以是 jdk1.5 枚举
还可是 jdk 7 字符串
case 常量……: 表示一个分支,程序会将 表达式的值 与常量 作相等判断 ==break : 表示要跳出switch default:表示默认,所有的条件都不成立,执行default分支中的执行语句n+1
执行流程:
a.程序 表达式 进行计算(也可以变量也可以常量)
b.再将 结果 依次与每个常量 进行匹配
c.如果相等,执行常量后面的执行语句.
d.程序碰到break,跳出switch的大括号,表示switch整体结束
e.如果都没有跟case后面的常量等上,只能执行default后面的执行语句n+1简单记: 1.计算 2.依次匹配,匹配上就执行对应的语句体 3.都没有,执行default 4.碰到break就跳出
根据变量int 1 打印 你好
2 打印 我好
3 打印 大家好
黑黑黑
*/
public class Demo{
public static void main(String[] args){
//定义一个变量 int接收 3
int num = -3;
System.out.println(“switch-start”);
//判断
switch(num){//-3
case 1:
System.out.println(“你好”);
break;
case 2:
System.out.println(“我好”);
break;
case 3:
System.out.println(“大家好”);
break;
default:
System.out.println(“黑黑黑”);
break;
}
System.out.println(“switch-end”);}
} -
switch高级用法
/*
switch高级用法
1.default可以放在switch最前面,也可是最后面,或者中间(不省略break)
2.每个case或者default后面的break,是可以省略的
执行完执行语句,程序就会穿过case(* 不再进行case匹配),直接执行下面的执行语句,叫做switch穿透
3.default写在最后,break省略与不省略没有差别
*/
public class Demo{
public static void main(String[] args){
//定义一个变量 int接收 3
int num = 1;
System.out.println(“switch-start”);
//判断
switch(num){//1
case 1:
System.out.println(“你好”);
//break;
case 2://此处的case不再与num匹配 直接往下执行
System.out.println(“我好”);
//break;
case 3:
System.out.println(“大家好”);
//break;
default:
System.out.println(“黑黑黑”);
//break;
}
System.out.println("switch-end");
}
}
8. 练习 switch穿透性
/*
练习 定义一个变量 1-12,根据数打印对应季节名字
3,4,5 春季
6,7,8 夏季
9,10,11秋季
12,1,2 冬季
switch穿透性: 简单 代码
*/
public class Demo练习{
public static void main(String[] args){
//定义一个变量int
int m = 4;
//使用switch进行选择
System.out.println(“swtich—start”);
switch(m){//4
case 3:
case 4: //程序跳到匹配位置,只匹配一次,后面的case还是default忽略
case 5:
System.out.println(“春季”);
break;
case 6:
System.out.println(“夏季”);
break;
case 7:
System.out.println(“夏季”);
break;
case 8:
System.out.println(“夏季”);
break;
case 9:
System.out.println(“秋季”);
break;
case 10:
System.out.println(“秋季”);
break;
case 11:
System.out.println(“秋季”);
break;
case 12:
System.out.println(“冬季”);
break;
case 1:
System.out.println(“冬季”);
break;
case 2:
System.out.println(“冬季”);
break;
default:
System.out.println(“月份不对”);
break;
}
System.out.println(“swtich—end”);
}
}
-
循环的概述
/*
循环:重复地做事情
循环结构:
为将相同的代码重复执行,可以指定重复的次数
java中的循环有三种
1.for循环
2.while循环
3.do…while循环
例子:
打印10次 媳妇我错了
*/
public class Demo{
public static void main(String[] args){
System.out.println(“媳妇我错了”);
System.out.println(“媳妇我错了”);
System.out.println(“媳妇我错了”);
System.out.println(“媳妇我错了”);
System.out.println(“媳妇我错了”);
System.out.println(“媳妇我错了”);
System.out.println(“媳妇我错了”);
System.out.println(“媳妇我错了”);
System.out.println(“媳妇我错了”);
System.out.println(“媳妇我错了”);
System.out.println("========================");
for(int i = 1; i<=10; i++){
System.out.println(“媳妇我错了”);
}
}
}
10. for循环基本使用
/*
例子:
打印10次 媳妇我错了
for格式 : for分分
for(1.初始化表达式;2.循环条件;4.步进表达式){
3.循环体
}
说明格式:
for : 表式循环
1.初始化表达式: 定义一个变量,直接给变量赋值(初始化)
2.循环条件: 控制循环是否继承
如果 循环条件 是false 那么 跳出for循环
如果 循环条件 是true 那么 执行第3步
3.循环体:
重复做事情的代码
4.步进表达式: 对 初始化表达式 中的变量进行更改
执行流程:
a. 1.初始化表达式执行,定义一个变量有值
b. 2.循环条件 进行判断
false 跳出for循环
true 执行循环体
c. 4.步进表达式 更新这个变量 ,继续 b
*/
public class Demo{
public static void main(String[] args){
System.out.println(“for --start”);
for(int i = 1;i <= 10 ; ++i){ // i = 1 2 3 4 5 6 7 8 9 10
//i表示拿到每一个数
System.out.println(“媳妇我错了” + i);
}
System.out.println(“for --end”);
}
}
11. 打印1-5所有的整数
/*
打印1-5所有的整数
打印5-1所有的整数
*/
public class Demo{
public static void main(String[] args){
//定义一个循环,里面打印整数
for( int i = 1; i <= 5 ; i++ ){ //i = 1 2 3 4 5
//i表示拿到的每一个整数
System.out.println(i);
}
System.out.println("==================");
for( int j = 5; j >= 1 ; -- j ){ //j = 5 4 3 4 1
System.out.println(j);
}
}
}
- 打印1-100之间的偶数和
/*
打印1-100之间的偶数和
思路 :
1.定义一个int 变量,接收累加的和
2.定义一个for循环
a. 过程 sum += i
b. 拿到每一个整数 i
3.打印
如果一个整数能被2整数,对2取余数,结果为0,叫做偶数
否则 奇数 %
*/
public class Demo{
public static void main(String[] args){
//定义一个int
int sum = 0;
//定义一个for循环
for( int i = 1; i <= 100 ; i++ ){ // i = 1 2 3 4 5
//偶数和 表示我们在求和之前,必须对i是否是偶数进行判断,如果是偶数就累加,不是偶数,不处理
//i 表示每一个整数
if( i % 2 == 0){
sum += i;
}
}
//打印
System.out.println("sum:"+sum);
}
}
for循环中可以有if
如果大家做一道题,直接搞不定,看不能转换我们会的。
-
while循环概述与使用
/*
所有for能搞定的,while肯定能搞定,反过来也可以。while格式 1.初始化表达式 while(2.循环条件){ 3.循环体 4.步进表达式 } 执行程序: a. 程序 执行 1.初始化表达式 定义一个变量 b. 判断 2.循环条件 条件是否成立 false 跳出while循环 true 执行 3.循环体 c. 执行 4.步进表达式 对 变量 进行更改 继承 第 b 步
*/
public class Demo{
public static void main(String[] args){
//for
for( int i = 1 ; i <= 10; i++ ){
System.out.println(“媳妇我错了”);
}
System.out.println("======================");
int j = 1;
while(j<=10){
System.out.println(“媳妇我错了”);
j++;//别忘记
}
}
}
-
while循环使用
/*
打印1-100之间的整数和思路: 1.定义一个变量接收 和 累加 2.定义一个while a. 获取i表示的每一个整数 b. 求和 3.打印
*/
public class Demo{
public static void main(String[] args){
//定义一个变量接收 和
int sum = 0;
//定义一个while循环
int i = 1;
while( i <= 100){ // i = 1
//i表示每一个整数
sum += i;
System.out.println(i);
//步进
i++; //别忘记
}
System.out.println("sum:"+sum);
}
}
15. do…while循环
/*
do…while格式
1.初始表达式
do{
3.循环体
4.步进表达式
}while(2.循环条件);
注意 : 不能省略;
执行流程 :
a. 执行 1.初始表达式 定义一个变量直接赋值
b. 执行 3.循环体
c. 执行 4.步进表达式
d. 判断 2.循环条件 是否成立
false 跳出循环
true 执行 第 b 步
因为 do...while 在执行第一循环体的时候,没有条件控制
所以 do...while最少执行一次循环体
*/
public class Demo{
public static void main(String[] args){
System.out.println(“do…while–start”);
int i = 1;//定义一个变量直接赋值 //i = 1 2 3 4 …10
do{
System.out.println(“HelloWorld”);
i++;//别忘了
}while(i >= 10);
System.out.println(“do…while–end”);
}
}
16. 三种循环的区别
/*
for > while > do…while
1.for与其他的区别
变量的属于for本身,如果for执行结束,变量跟着for销毁
2.do..while跟其他的区别
for与while的循环体是否执行由循环条件控制,如果循环条件不成立,一次也不执行循环
do..while 因为while写在循环体的后面,不管条件是否成立,最少执行一次循环体
经验:
for 一般是用在次数明确的循环中
while 一般是用在次数不明确的循环中 后期学io
do...while 这辈子最后一次使用
*/
public class Demo{
public static void main(String[] args){
//
for(int i = 1;i<=5;i++){
//i 表示每个整数
System.out.println(i);
}//end
//System.out.println(i);//编译报错
System.out.println("===================");
for(int i = 1;i <= 5;i++){
System.out.println(i);
}
//while
System.out.println("===================");
int i = 1;
while(i<=5){ //i 6
System.out.println(i);
i++;
}//end
System.out.println("===================");
System.out.println(i);//i 属于main,main没有结束,不会销毁i
//int i = 1;//编译报错
}//end
}
- break跳出
/*
break
1.如果使用在switch中,那么表示跳出switch、结束整个switch
2.如果使用在循环中,那么表示跳出循环,结束整个循环
*/
public class Demo{
public static void main(String[] args){
//
for(int i =1; i<=5;i++){ // i = 1 2 3
//i表示每一个整数
System.out.println(i);
if(i == 3){
break; //立刻马上结束循环
}
}//end
}
}
18. continue跳出语句
/*
continue
只能在循环中使用
本次(轮)跳过,循环没有停止,继续下一轮
*/
public class Demo{
public static void main(String[] args){
for(int i = 1; i<=5; i++){ //i = 1 2 *3 4 5
if( i == 3){
continue; // i = 3 跳过本次循环,即continue下面的语句不执行直接到步进
}
System.out.println(i);
}
}
}
-
死循环
/*
死循环,
控制循环的条件永远truewhile(true){ }
*/
public class Demo{
public static void main(String[] args){
/*
for(int i= 1;i>=1;i++){ // i=1 2 3 4 5
System.out.println(i);
}
/
/
for(int i= 1;true;i++){ // i=1 2 3 4 5
System.out.println(i);
}*/
//三个东西都可以省略 ,程序会将控制条件设置true
for(;;){ //
System.out.println("==");
}
}
}
20. 嵌套循环
/*
嵌套循环
一个循环中包含另一个循环
作用:
可以用来打印二维平面
for(...){ //外层循环
for(...){ //内层循环
}
}
System.out.println("*");
System.out.print("*");
*****
*****
*****
*/
public class Demo{
public static void main(String[] args){
/*
System.out.println(“");
System.out.println("”);
System.out.println("*****");
/
//一行星号
/
for(int i = 1;i<=5;i++){
System.out.print("");
}
System.out.println("");
for(int i = 1;i<=5;i++){
System.out.print("");
}
System.out.println("");
for(int i = 1;i<=5;i++){
System.out.print("");
}
System.out.println("");/
//终极版
//外层循环控制内层循环
//外层循环循环一次,内层循环5
//外层循环控制的行
//内层循环控制的列
for(int j = 1;j<=10;j++){ //外层循环 j = 1 2
//打印一行星号的代码
for(int i = 1;i<=6;i++){ //内层循环 i = 1
System.out.print("*");
}
System.out.println("");
}
}
}
- 小结
理解if语句的格式和执行流程
理解if…else语句的格式和执行流程
理解if…else if语句的格式和执行流程
图
三种格式
理解switch选择语句的格式和执行流程
图片
了解switch的穿透性
高级
1.不省略 break; default最前,最后,中间
2.省略 break; switch的穿透性
匹配一次
忽略后面的case
只要没有碰到break
春夏秋冬
理解for语句的格式和执行流程
for分分
不熟练
复制的格式
复制来,改成需要
理解while语句的格式和执行流程
不熟练
复制的格式
复制来,改成需要
别忘记步进
了解do…while语句的格式和执行流程
最后一次
了解跳出语句break,continue的意义
理解嵌套for循环的执行流程
//外层循环控制内层循环
//外层循环循环一次,内层循环5
//外层循环控制的行
//内层循环控制的列
for(int j = 1;j<=10;j++){ //外层循环 j = 1 2
//打印一行星号的代码
for(int i = 1;i<=6;i++){ //内层循环 i = 1
System.out.print("*");
}
System.out.println("");
}