在程序设计中,敲代码已经是家常便饭,对于即将作为码农的你,学会写语句或许是我们学做饭的第一步。分支结构与循环结构也是敲代码流程控制中及其重要的,也是程序设计中的算法基础。
语句
首先,先了解什么是一条语句,在程序设计中,语句可以是以分号";"的简单语句,也可以是用一对花括号"{}"括起来的复合语句。如
int he=185;
int she=165;
//三元运算符语句,也是条件分支语句的一种,包含了判断,返回不同的结果,别看起来很长,也是一条语句
String beautiful = she<he ? "She is beautiful" : "He is considerate" ;
//判断比较,如果为真返回分号前的值,如果为假返回分号后的值
System.out.println(beautiful);//打印"She is beautiful",也是一条语句
//程序语句中,最简单的流程控制结构是顺序结构,即你写的代码从上到下一行一行执行
分支结构
分支结构又称选择结构,要先做一个判断,然后根据判断的情况选哪一条路径。
最常见的就是if条件语句。if(条件表达式1){语句序列1}else if(条件表达式2){语句序列2} else{语句序列3} 。语句序列中包含了多条语句,如果只是一条语句可忽略花括号。
还有个switch多分支开关语句,常用于多重条件选择。switch(表达式){case 常量表达式1:语句序列1;break;case 常量表达式2:语句序列2;break;case 常量表达式n:语句序列n;break;default :语句序列n+1;}break跳转语句,符合时跳出switch结构,不再往下执行switch结构里的,default 是case都不满足时再去执行。
int sugar=99;
int flower=71;
if(sugar>0){
sugar++;
System.out.println("这是他送的第"+sugar+"颗小甜心");
}//语句序列用括号括起来代表符合这个条件就执行这里面的
else if (flower<sugar)
//一条语句可以不用括号
System.out.println("71是质数,质数的真因子只有1,代表他的真爱只有你");
//值得注意的是,当if语句满足后,else if后的语句即使满足条件也不再执行,
// 因此输出为:这是他送的第100颗小甜心
Scanner sc=new Scanner(System.in);
System.out.println("猜猜他的礼物盒密码是多少");
int m=sc.nextInt();//控制台接收你猜的数进行输入
if(m==520)//注意判断条件的等号一定是"=="而不是"="
System.out.println("他会想我吗");
else if(m==521)
System.out.println("比520多一点");
else if(m==7758)
System.out.println("好像有点肉麻");
else //注意到了else里面的语句说明if与else if的语句条件均不符合
System.out.println("是不爱了吗");
//输入的数不同,输出打印的结果也会跟分支结构的结果有关
String npy=sc.next();
switch (npy) {
case "帅气干净": //case对npy进行判断是否符合,输出打印结果由输入的字符串进行判定
System.out.println("必须加分");
break;
case "温柔体贴":
System.out.println("很好相处");
break;
case "有房有车":
System.out.println("适合生活");
break;
case "他喜欢我我也喜欢他":
System.out.println("那个他在哪");
break;//跳转语句,退出此分支结构
default://当case语句不符合时
System.out.println("还没见到合适的");
}
循环结构
循环结构时在一定条件下反复执行某段程序的控制结构,被反复执行的语句序列称为循环体。
for(初始化表达式;条件表达式;修改循环变量){循环体}
while(条件表达式){循环体}
do{循环体}while(条件表达式),do-while语句无条件先执行一遍循环体,所以至少执行一次。
循环跳转语句有:
break语句可以终止switch中的某个case,也可以让一个循环立即结束。
continue语句必须用在循环结构中,用来终止本轮循环即当前本次循环。
return语句用来使程序从方法中返回,并为方法返回一个值。如果未出现在方法中,则执行完方法的最后一条语句后自动返回到调用它的程序。
结合例子理解
//他第一天送一朵花,第二天送两朵花,依此类推,一星期送多少花
int sum=0;//初始化总数值sum
//先初始变量作为天数,一星期可知范围[1,7],控制循环条件到第七天结束,
//n自增就是循环遍历的过程,也可以理解为从一到七的整数枚举
for(int n=1;n<=7;n++) {
//天数与送的花数相同,因此到了第几天就是送了几天,计算累加值即可
//这里的sum会随着n的增加进行不断更新
sum+=n;//sum=sum+n;
}
System.out.println(sum);//打印要放在括号后,要注意问的是最后的总值,因此放在循环语句后做循环后的结果
//找素数时会看到
for (int i = 2; i <= Math.sqrt(n); i++) {//i<n也行,但实际找到质因子即可,因此可以减少循环次数
if (n % i == 0)break;//能被整除,说明找到了质因子,这个数不是素数,跳出循环
}
//打印三角形等图案时会看到外循环,记住内循环结束后才执行外循环,两个内循环就按顺序由上到下执行
int i,j=0;
for(i=1;i<=n;i++) {//外循环控制行数
for(j=1;j<=n-i;j++)//先进行空格打印
for(j=1;j<=2*i-1;j++)//再进行*打印
System.out.printf("\n");//System.out.println();对应外循环每次打印换行
}
//while循环在做一些算法题样例测试常用,比如要输入三组数据检测,每组数据两个数
int t=3;
while(t-->0) {
int a=sc.nextInt();
int b=sc.nextInt();
}
小结
选择分支结构与循环结构是最基础的算法,学会判断条件是否符合,学会数据的增删改查,学会其用途,个人觉得这些就类似找规律的用途,代码学多一点你会发现很多问题都能用for与if等进行运算解决,多练习,相信会看到码农采摘的果实的。