目录
选择结构
基本if选择结构
if(判断条件){
//代码
}
if-else选择结构
if(判断条件){
//条件为true,执行的代码
}else{
//条件为false,执行的代码
}
注意:
- 简化的if-else,在if-else结构中,如果只有一句代码那么“{}”可以省略
- 使用if-else做判断赋值操作时,与条件运算符的格式转换
多重if选择结构
说明:一般用于条件为区间的形式
if(条件1){
//条件1为true时,执行的代码
}else if(条件2){
//条件1为false并且条件2为true时,执行的代码
}else if(条件3){
//条件2为false并且条件3为true时,执行的代码
//在条件3之下可能还会出现多个条件,此处不再列举
}else{
//当条件3为false时,执行的代码
}
注意:条件区间要连续,不要出现跨越
嵌套if选择结构
if(外层判断条件){
//外层条件为true时
if(内层判断条件){
//内层判断条件为true时,执行的代码
}else{
//内层判断条件为false时,执行的代码
}
//其他代码
}else{
//外层判断条件为false时,执行的代码
}
三元运算
判断条件 ? 结果1 : 结果2
举例:
int week=3;
String jie= week==6||week==7?"周天":"不是周天";
System.out.println(jie);
结果:
输出:不是周天
Switch选择结构
switch(用于比较的数值){
case 数值常量1:
//代码1
break;
case 数值常量2:
//代码2
break;
case 数值常量3:
//代码3
break;
...
default:
//default代码
break;
}
switch常用于等值判断
举例:
int tian=1;
switch (tian) {
case 1:
System.out.println("周一");
break;
case 2:
System.out.println("周二");
break;
case 3:
System.out.println("周三");
break;
case 4:
System.out.println("周四");
break;
case 5:
System.out.println("周五");
break;
default:
System.out.println("周六周天休息");
break;
}
结果:
输出:周一
switch中的break可以省略,省略时执行下一个case
举例:
题目:输入日期判断,1,3,5到校自习,2,4,6上课,周天休息
System.out.println("请输入日期:");
int qi=input.nextInt();
switch (qi) {
case 1:
case 3:
case 5:
System.out.println("到校自习");
break;
case 2:
case 4:
case 6:
System.out.println("上课");
break;
default:
System.out.println("休息一天");
break;
}
注意:
- 用于比较的数值,它的数据类型/数值常量的数据类型:JDK 1.7以前,支持int,char;JDK 1.7及以后,支持int,char,String
- case结构中,不写break关键字,switch的执行过程。
循环结构
While循环
while(循环条件){
//循环执行的代码
}
do-while循环
do{
//循环执行的代码
}whie(循环条件);
For循环
for(变量初始化;循环条件;变量的迭代){
//循环执行的代码
}
While,do-while两者异同
相同点:都是循环结构,都可以完成循环操作
不同点:
- 语法不同
- 执行顺序不同,while是先判断后执行do-while是先执行后判断
- 循环次数不同,while有可能一次也不执行,do-while至少无条件执行一次
While,do-while,for三者执行特点
while: 先判断,后执行。
do-while: 先执行,后判断。循环执行的代码无论条件是否成立,都会至少执行一次。
for: 先判断,后执行。一般用于明确知道循环次数的情况,不适用于”是/否“这样的判断
二重循环
概念
一个循环体中,包含另一个完整循环。
执行特点
外层循环执行一次,内层循环要从头到尾执行一遍。
案例
直角三角形
for (int i = 1; i <6; i++) {
for (int j = 1; j <=2*i-1; j++) {
System.out.print("*");
}
System.out.println();
}
等腰三角形
for (int i = 1; i <6; i++) {
for (int k = 1; k <6-i; k++) {
System.out.print(" ");
}
for (int j = 1; j <=2*i-1; j++) {
System.out.print("*");
}
System.out.println();
}
倒三角形
for (int i = 5; i >0; i--) {
for (int j = 1; j <=i; j++) {
System.out.print("*");
}
System.out.println();
}
九九乘法表
for (int i = 1; i <=9; i++) {
for (int j = 1; j <=i; j++) {
System.out.print(j+"*"+i+"="+(j*i)+" ");
}
System.out.println();
}
数字金字塔
for (int i = 1; i <=9; i++) {
for (int j = (10-1); j >=i; j--) {
System.out.print(" ");
}
for (int k = 1; k <=i; k++) {
System.out.print(k);
}
for (int h = (i-1); h >=1; h--) {
System.out.print(h);
}
System.out.println();
}
菱形
int gao;//输入3
do {
System.out.println("请输入菱形高度,输入奇数:");
gao=input.nextInt();//输入3
} while (gao%2==0);
for (int i = 1; i <=gao/2+1; i++) {//3/2=1.5自动转成int,就是1,但是少长度最长的哪一行所以+1,=2,外层循环2次
for (int j =gao-i-1; j >=1; j--) {//空格,高度减去外层的i,3-i,假设i现在是1,3-1=2,第一行空格是2个但是就一个*号,一个空格即可所以在他的基础上-1,逆序输出即可
System.out.print(" ");
}
for (int k = 1; k <=i*2-1; k++) {//*号的规律就是外层是1的时候,内层是1;外层2,内层是3个*,所以在此基础上要*2-1就是我们想要的
System.out.print("*");
}
System.out.println();
}
for (int i = gao/2; i >=1; i--) {//与上面同理,不过我们需要倒着输出,并且不需要输出最长的哪一行了,所以就不需要-1,直接逆序循环即可
for (int j =gao-i-1; j >=1; j--) {
System.out.print(" ");
}
for (int k = 1; k <=i*2-1; k++) {
System.out.print("*");
}
System.out.println();
}
跳转语句
break:用来跳出它所在的switch结构或者循环结构的。
continue: 跳过它所在的循环的本次循环,执行下一次循环
Returnreturn: 中止方法。