选择分支结构中
第一种结构语句: if语句
if (条件) {} else{}
if(条件){}else if {} else{}
多个else if结合效率低,因为对于if是条件都要进行判断
第二种结构语句: switch语句
结构:
Switch(变量)
{
case 变量的取值(整数,char,字符串):
break;当你执行完选项值后,就要退出,大部分情况结合break
default:相当于else
}
底层原理:
switch(变量)-----à字节码--àhashCode()(顺序的结构表)
在case变量中使用equals
使用场景:只要可以限定if条件语句值,都可以使用switch,但如果区间,只能用if(> < >= <=),区间段的程序没有办法做switch
等于:凡是字符串使用equals,凡是数值就可以用等号。
当程序中出现的语句不停复制,粘贴,程序的代码出现重码率。
在程序执行过程中,出现语句重复,可以考虑java循环结构。
包括3种结构
第一种: While循环
While(条件){
循环体
}
满足条件就进行循环体中语句的执行
第二种:
for循环
for(循环变初值;循环变量条件;循环变量增长量){
循环体
}
只要循环变量在做增长量后满足循环变量的条件进行循环体的语句执行。
第三种
do{
循环体
}while(条件)
先做一次循环体,做完一次判断条件,如果满足条件,继续作循环体.
经常用到的: for 循环;while 循环;do{}while()循环很少写
基本程序,体会循环的结构.
求1-100的和(使用while和for实现一次)
思路图:
Sum初值为1的程序如下.
public class test_while_sum1 {
public static void main(String[] args) {
//while求1-100的和值
//int sum=1+2+3+4+5+6+7+....+100,这个程序中1,2,3,4,....,重复不停地敲等差的数字,重复的部分用循环解决
//循环内容:重复的劳动,重复的内容是1,2,3,4,......,使用循环产生数字。
//程序的开发是需要变量的,这里变量num num的值是1,2,3,4,.....,这个变化的数字就是全局变量,最终的和值sum
//定义全局变量, num每一个重复输入的等差数,sum最终的结果
int num;
//sum不提供初值,在后面的计算会报错,因为进入循环后,num=1就被覆盖了,这里sum直接等于1
int sum=1;
//产生num,num是从1开始加到100,num就应该有初始值。
num=1;
//接下来变量不停加1,再赋给自己,后面不停地复制,使用while限制num的值
while(num<100){
//因为sum初值为1,先进行num加,后面再进行sum,注意在while条件中会多出101,把num限定在num<100
//不停把num值相加,num值产生100个数
num=num+1;
System.out.println("num-----"+num);
//先求和,再算num的值
//接下来把num的和值放在sum,
sum=sum+num;
System.out.println("sum----"+sum);
}
//当循环体中100个数全部加成功,就可以输出sum值
System.out.println(sum);
}
}
如果做累乘.
注意:while和for的区别
for循环的语句一定循环变量的初值和终值的范围,使用for循环循环几次.
While(只有一个条件),只要条件满足就执行,有的时候,程序无法预测条件什么时间满足,这时使用while.
注意:循环不要循环大数字100000000;
循环类的精典程序:
- 百僧吃百膜
100个和尚吃了100个馒头 ,100和尚有大和尚和小和尚,一个大和尚能吃3馒头,三个小和尚吃1个馒头,问大和尚和小和尚有多少个?
对这个程序有兴趣的可以转到Git查看:Lazying (Hcyoo1) - Gitee.com