二.JAVA系列学习笔记之控制流程
1.控制流程是程序当中不可少的一部分,如果此处具有一定的其他语言的基础的话,此处极容易上手
下面是练习程序流程几个例子,是笔者学习过程中练习的几个小练习题
1.1 对100以内的奇数和偶数进行求和
此练习题的解决方式有两种:方案一利用循环对100以内的奇数和偶数进行判定如:i%2==0,满足此条件的即为偶数,另一半即为奇数。因此在此基础上再添加一个if判断语句即可,代码见2.1
方案二:这个方法比较粗略:设定好初值,奇数设定初值为1,偶数设定初值为2,然后每步进行加2操作,执行50步,也可以解决奇数和以及偶数和的问题。(练习未加保存,本文不再展示代码)
1.2 打印输出九九乘法表
九九乘法表是一个比较经典的练习题,需要用到嵌套语句,双循环语句,笔者在练习的过程中出现了,打印成列的情况,在进行查询之后发现,println(),可以实现自动换行,导致直接出现成列的情况,如果改善,只需要使用print()即可,当然print(“\n”)也可以实现上述功能。
1.3 1000以内被某一个数整除,此处以7为例,同时实现5个一排输出
对于此问题,也是一个取余问题,类似1.1中只要满i%7=0,即可,如果想实现5个一排输出则需要再进行一次嵌套判断条件为i%(75)=0,满足此条件进行换行即可
1.4打印三角形
三角形的打印属于上述过程的一个进阶型的练习,方案一:需要使用四个for循环进行
首先对三角形的拆分,我们发现这个三角形左右两侧对称,左侧再次拆分我们发现实际可以将这个再次拆分为两部分,一侧为空白,一侧为,那么只需要借助两次循环就可以实现,对于右侧,只需要对有**的部分再用一次循环输出*,另一次for循环输出空白即可完成,可以作为练习使用
方案二:利用三角形之间的关系,每一层中输出的应该是2N-1,空格也是逐层进行减小的,可以利用此关系进行,只需要进行三次for循环即可,相对于方案一运算会更快。代码如下
2练习代码如下
2.1 对100以内的奇数和偶数进行求和
public class Demo08 {
public static void main(String[] args) {
int i=0;
int j=0;
int sum1=0,sum2=0;
int sum=0;
for(i=0;i<=100;i++)
{
//判断i的奇数或者偶数
if (i%2==0)
{
System.out.println(i);
sum1=sum1+i;
System.out.println(sum1);
}
else {
sum2=sum2+i;
System.out.println(sum2);
}
sum =sum1+sum2;
System.out.println("总和为:"+sum);
System.out.println("偶数和:"+sum1);
System.out.println("奇数和:"+sum2);
}
}}
2.2 打印输出九九乘法表
public class Demo03 {
public static void main(String[] args) {
System.out.println("乘法表打印如下:");
for (int i=1; i <10 ;i++)
{
for (int j=1;j<=i;j++)
{
//int sum = i*j;
//System.out.println("%d*%d=%d\t" i,j,sum);
System.out.print( " " +i+"*"+j+"="+(i*j) + " \t ");
if(i==j) {
System.out.print("\n");
}
}
}
}
}
2.3 1000以内被某一个数整除,此处以7为例,同时实现5个一排输出
public class Demo10 {
public static void main(String[] args) {
//1000以内可以对5整除的数
for (int i = 0; i < 1000; i++) {
if (i%7==0){
System.out.print(i+"\t");
if (i%(7*5)==0){
System.out.println();
}
}
}
}
}
2.4 打印三角形
步骤一:先打印三角形的一半,此处为显示出来,将本来是空白的进行了打印
public class Demo11 {
public static void main(String[] args) {
for (int i = 1; i <= 5; i++) {
for (int j =5; j >= i; j--) {
System.out.print("*");
if (i==j){
System.out.println(" ");
}
}
}
}
}
效果图如下
步骤二:则是对步骤已进行翻转,在使用两个for循环来完成即可完成
方案二:
public class Demo11 {
public static void main(String[] args) {
for (int i = 0; i < 4; i++) {
for (int j = i; j < 3; j++) {
System.out.print(" ");}
for (int k = 0; k <2* i+1; k++) {
System.out.print("*");
}
System.out.println();
}
}
}
效果图如下: