一、if分支结构
if的分支结构有三种:
if(判断条件) {程序运行内容} |
if(判断条件){ 程序运行内容 }else{ 程序运行内容 } |
if(判断条件){ 程序运行内容 }else if{ 程序运行内容 }……中间可有多个else if……else{ 程序运行内容 } 最后的else理论上可有省略不写,但是实际开发下,强烈建议以else结尾 |
三种if语句的应用实例
/*第一种:if(判断条件){运行内容}*/ public class Logic{ public static void main(String[] args){ int money = 20; if(money >= 15) { System.out.println("Can buy it"); } System.out.println("Then,you can eat it."); } }
/*第二种:if(判断条件){运行内容}else{运行内容}*/ public class Logic{ public static void main(String[] args){ int money = 2; if(money >= 15) { System.out.println("Can buy it"); }else{ System.out.println("Pick up other people's things"); } System.out.println("Then,you can eat it."); } }
/*第三种:if(判断条件){运行内容} else if(判断条件){运行内容} else{运行内容} */ public class Logic{ public static void main(String[] args){ int age = 66; if(age<=10){ System.out.println("幼学"); }else if(age<=20&&age>10){ System.out.println("加冠"); }else if(age<=30&&age>20){ System.out.println("而立"); }else if(age<=40&&age>30){ System.out.println("不惑"); }else if(age<=50&&age>40){ System.out.println("半百"); }else if(age<=60&&age>50){ System.out.println("耳顺"); }else if(age<=70&&age>60){ System.out.println("古稀"); }else if(age<=80&&age>70){ System.out.println("耄耋"); }else if(age<=90&&age>80){ System.out.println("上寿"); }else{ System.out.println("期颐"); } } }
二、switch开关语句
switch是一个开关语句,它主要根据内容来进行判断,需要注意的是switch中可以判断的只能够是数据(int、char、枚举(JDK1.5后才有)、String(JDK1.7后才有)),而它不能使用逻辑判断,语法+代码如下:
/* switch语句格式: switch(数据){ case 数值: 满足是执行内容; break; case 数值: 满足是执行内容; break; …… default:以上条件都不满足,执行这一句结束; } 同样,我们的default可以省略不写,但是建议程序开发中尽量使用上 另外,我们的数据和数值的数据类型要一致 不能判断的数据是整型,数值是字符串 */ public class Logic{ public static void main(String[] args){ int age = 6; String name = "小明"; switch(age) { case 6: System.out.println("小明今年6岁"); break; case 7: System.out.println("大家好我叫小明"); break; default:System.out.println("你输入的数据查询不到!!"); } } }
switch语句在设计时,如果每一个case后面没有追加break语句,那么会在第一个匹配的case语句后,会继续执行switch中后续的语句,直至default/break完成结束。
三、while循环结构
所谓的循环结构是指某一段代码被重复执行的处理操作,在程序开发中提供有while语句来实现循环的定义,该语句有两类使用形式:
while(布尔表达式) { 条件满足时执行; 修改循环条件; } |
do { 条件满足时执行; 修改循环条件; }while(布尔表达式); |
两种循环使用示例:
/* while循环 */ public class Logic{ public static void main(String[] args){ int sum = 0, num = 1; while(num <= 100) { sum +=num; num++; } System.out.println(sum); } }//注意:这里的修改循环条件必须存在,否则会进入死循环,程序卡死不能输出。
/* do……while循环 */ public class Logic{ public static void main(String[] args){ int sum = 0, num = 200; do { sum +=num; num++; }while(num <= 100); System.out.println(sum); } }//注意:这里的修改循环条件必须存在,否则会进入死循环,程序卡死不能输出。 //这段代码输出为200,为什么呢? //因为我们的num=200, //do……while循环的特点是,先运行条件满足时的执行的语句,再进行布尔表达式的判断 //所以此时布尔表达式为false,执行了一次,sum ==200此时 //由此我们可以得到结论:我们的日常开发中,使用do……while循环语句的情况少之又少的。
四、for循环结构
for循环也是一种常规的使用结构,其语法如下:
for(定义循环的初始化数值;循环判断;修改循环数据){
循环语句的执行;
}
for循环的使用示例
/* for循环实现1~100! */ public class Logic{ public static void main(String[] args){ int sum = 0; for(int num=1;num<=50;num++){ sum +=num; } System.out.println(sum); } }//注意:这里的修改循环数据必须存在,否则会进入死循环,程序卡死不能输出。
对于while和for循环的选择只有一个参考标准:
- 在明确确定循环次数的情况下优先选择for循环;
- 在不知道循环次数但是知道循环结束条件的的情况下使用while循环;
五、循环控制
在循环语句定义的时候,还有两个控制语句:break、continue
1、break主要的功能是退出整个循环结构
/* break循环结束使用示例 */ public class Logic{ public static void main(String[] args){ for(int num=1;num<=10;num++){ if(num==4){ System.out.print(num); break; }else{ System.out.print(num+"、"); } } } }
2、continue严格来讲只是结束当前的一次调用(结束当前循环)
/* continue循环结束使用示例 */ public class Logic{ public static void main(String[] args){ for(int num=1;num<=10;num++){ if(num==4){ System.out.print(num); continue; }else{ System.out.print(num+"、"); } } } }
六、循环嵌套
循环的嵌套,顾名思义就是套娃娃,在一个循环里在写一个循环的意思。
下面我用循环嵌套写一个九九乘法表(建议此代码段新手先尝试练习,在展开代码对比)
public class MultiplicationTable { public static void main(String[] args){ for(int i = 1;i<=9;i++){ for(int f = 1;f<=i;f++){//f的大小由i决定,若i=100,则f=100 System.out.print(f+"*"+i+"="+i*f+" "); } System.out.println(); } } }
另外再打印一个三角形
public class MultiplicationTable { public static void main(String[] args){ int line = 5; //行数5行 for(int flag = 0;flag < line;flag++){//先套个大娃娃:循环5行 for(int space = 0;space<line - flag;space++){//然后每+1行,前面空格-1个 System.out.print(" "); } for(int start = 0;start <= flag;start++){//接着每+1行,星星多+1个 System.out.print("* "); } System.out.println(); } } }
感谢阿里云开发者社区,让我有整套系统的Java学习教程
同时,感谢博客园,让我有一个免费的博客,并让我做笔记学习!!