
顺序结构顺序结构程序按照代码书写的先后顺序从上到下逐行依次执行没有跳转、没有分支写在前面的代码先执行写在后面的后执行System.out.println(aaa); System.out.println(bbb); System.out.println(ccc); System.out.println(aaa); System.out.println(ccc); System.out.println(bbb);分⽀结构if 语句语法格式 1单 ifif(布尔表达式){ // 语句 }逻辑布尔表达式为true执行大括号内代码为false直接跳过int score92; if(score90) { System.out.println(吃个大鸡腿); }语法格式 2if‑elseif(布尔表达式){ // 语句1 }else{ // 语句2 }逻辑条件 true 执行 if 代码false 执行 else 代码int score100; if(score90) { System.out.println(吃个大鸡腿); } else { System.out.println(挨大嘴巴子); }语法格式 3if‑else if‑else 多分支逻辑从上往下判断哪个条件成立就执行对应代码块都不成立执行elseint score92; if(score90score100) { System.out.println(优秀); } else if(score80score90) { System.out.println(良好); } else if((score70score80)) { System.out.println(中等); } else if(score60score70) { System.out.println(及格); } else if(score50score60) { System.out.println(不及格); } else { System.out.println(错误数据); }判断奇数偶数原理%取模对 2 取余等于 0 就是偶数否则奇数//判断奇数还是偶数 int num10; if(num%20) { System.out.println(偶数); } else { System.out.println(奇数); }判断正数、负数、零int num10; if(num0) { System.out.println(正数); } else if (num0) { System.out.println(负数); } else { System.out.println(0); }判断闰年闰年规则世纪年份能被 100 整除必须同时被 400 整除才是闰年普通年份能被 4 整除就是闰年int year2000; if(year%1000) { if(year%4000) { System.out.println(闰年); } else { System.out.println(不是闰年); } } else { if(year%40) { System.out.println(闰年); } else { System.out.println(不是闰年); } }// int year2000; // if((year%40year%100!0)||(year%4000)) // { // System.out.println(闰年); // } // else { // System.out.println(不是闰年); // }分号陷阱分号代表一条空语句结束等价于if 只控制空语句后面{}是独立代码块无论 if 条件真假大括号代码永远执行int x20; if(x10); //由于有分号分号代表语句结束不会判断if条件 //下面的代码块正常执行 { System.out.println(hehe); }悬垂 else 问题Java 规则else 总是匹配离它最近的没有配对的 ifint x10; int y20; if(x10) if(y10) System.out.println(aaa); else System.out.println(hehe);为了消除歧义建议加花括号switch 语句基本语法switch(表达式){ case 常量值1:{ 语句1; [break;] } case 常量值2:{ 语句2; [break;] } ... default:{ 内容都不满足时执行语句; [break;] } }执行流程a先计算switch 括号中表达式的值b和各个case后面的常量依次比较匹配成功就执行该 case 里面的代码一直往下 执行直到遇到 break 才结束 switchc所有 case 都不匹配时执行default里面的代码注意事项acase 常量不能重复bswitch 表达式允许的数据类型基本类型byte、char、short、int不允许 long、double、float引用类型String字符串、枚举类型double num1.0; switch(num) //编译报错double类型的不能放switch里 { case 1.0: System.out.println(haha); }cbreak 不要遗漏, 否则会失去 多分⽀选择 的效果dswitch 适合等值匹配不适合区间判断// 区间条件只能if if (num 10 num 20) { System.out.println(hehe); }eswitch 支持嵌套但不推荐循环结构while 循环语法循环条件为true执行循环体为false结束循环while(循环条件) { 循环语句; }打印 1‑10//打印1--10 int num1; while(num10) { // System.out.println(num); System.out.printf(%d ,num); num; }计算 1‑100 和int n1; int sum0; while(n100) { sumn; n; } System.out.println(sum);int n1; int result1; while(n5) { result*n; n; } System.out.println(result);思路a算每一个数字的阶乘b把每一个阶乘结果全部累加起来int num1; int sum0; while(num5) { int factorResult1; //保持当前数字的阶层 int tmp1; while(tmpnum) { factorResult*tmp; tmp1; } sumfactorResult; num; } System.out.println(sum);while 注意事项a不写{}只跟一条语句建议始终加大括号bwhile(条件)后面不要多加breakbreak 作用直接结束整个循环跳出循环循环彻底终止找 100‑200 之间第一个3 的倍数int num100; while(num200) { if(num%30) { System.out.println(找到了一个三的倍数为num); break; // break 是跳出整个循环不在往下判断 } // 要num 否则会死循环 num; }关键点break跳出自己所在的那一层循环continuecontinue 作用跳过本次循环剩下代码立刻进入下一次循环条件判断循环不结束只是跳过这一轮找出 100‑200全部3 的倍数int num100; while(num200) { if(num%3!0) { // 要更新变量 num; continue; } System.out.println(num); num; }逻辑a 如果这个数不是 3 的倍数num执行continue后面打印语句直接跳过 回到while(num 200)判断下一轮b 如果是 3 的倍数不走 continue执行打印再numcontinue 踩坑点while(num 200){ if(num%3!0){ continue; num; // 永远执行不到continue直接跳走了 } System.out.println(num); num; }continue后面的代码不会执行循环变量更新一定要写在 continue 前面for 循环语法格式for(表达式1;布尔表达式2;表达式3){ 表达式4; //循环体代码 }表达式 1初始化循环变量只执行 1 次最开始跑表达式 2循环条件true 执行循环体false 循环结束表达式 3循环变量更新i表达式 4循环体执行顺序1 只跑一次2 判断4 干活3 更新回到 2打印 1‑10for(int i1;i10;i) { System.out.printf(%d ,i); } System.out.println();计算 1‑100 的和//计算1- 100 的和 int sum0; for(int i1;i100;i) { sumi; } System.out.println(sum); System.out.println();计算 5 的阶乘 5! 1*2*3*4*5//计算 n 的阶层 int res1; for(int i1;i5;i) { res*i; } System.out.println(res);计算 1!2!3!4!5! for 嵌套 forint sum0; for(int i1;i5;i) { int tmp1; //重置 tmp 1 for(int j1;ji;j) { tmp*j; } sumtmp; } System.out.println(sum);for 循环注意事项a不写{}只执行紧跟的第一条语句开发建议永远写大括号bfor( )括号后面千万不要随便加分号cbreak结束整个 for 循环continue跳过本轮循环d表达式2如果缺失代表该循环为死循环do‑while 循环特点先执行循环体再判断条件循环体至少执行 1 次语法do{ 循环语句; }while(循环条件); // 末尾必须写分号 ;打印 1--10int num1; do{ System.out.printf(%d ,num); num; }while(num10); System.out.println();小试牛刀判断数字是否为素数