从零开始学java-(六)for ZCL:java流程控制2

阅读更多

   上一篇我们讲了流程控制中的条件语句,条件语句讲了标准格式,基本格式,复杂格式;现在来说个名字,叫做嵌套,所谓嵌套就是嵌入套进去,那么条件语句嵌套就是在条件语句中再嵌套条件语句,什么情况下会进行嵌套呢,举个例子,先判断我们的工资是否大于5000,如果大于5000我们就想投资了,但是投资时候我们还是要判断收益率和本金,满足我们的要求才会投资,如果工资小于5000,那什么也别说,老实儿工作靠谱些

来看看伪代码;噢,对了一个概念,伪代码,伪代码就是按照代码的格式用我们可读的方式写出来的代码,可以阅读理解,但是无法运行,因为没有准确的语法,来看看

 if (工资大于5000) {

       //应该投资了

       if(该理财产品收益率高,本金低){

              投资

        }else{

              不投资了!

        }

  }else{

        //这点儿工资啥也干不了

        不投资了。。攒钱

}

 

这就是一种伪代码,标准的格式,非标准的语法和句柄,能看懂,不能执行;

这就用到了条件语句的嵌套;其实就是条件语句里面套了一层条件语句,并没有什么太特殊的,没事儿自己去试试;

有点要注意的就是在使用之前,先想好,有一个清晰的思路,用我一个朋友的话,就是女一女。。。当然他大舌头,实际是捋一捋!!捋清楚了再开始实现你个条件语句,绘制流程图,流程图这里就不介绍了,大家自己了解。

 

下面我们来了解下流程控制中的其他语句,

循环语句,循环语句的作用,不言而喻,就是用来做循环的,什么是循环呢?就是开始-->结束然后再开始,再结束,再开始在结束。。。知道我们不想让他再执行了,那么这个循环就结束了;

我们为什么要使用循环语句呢?举个最简单的例子,比如说现在呢,我们想要把1自加10次,其实不用循环也能实现,来看个例子

public class ProcessCycle{
	public static void main(String [] args){
		int index = 1;
		index = index + 1;
		index = index + 1;
		index = index + 1;
		index = index + 1;
		index = index + 1;
		index = index + 1;
		...
	}
}

 这个例子是不能执行的。。。请注意噢,我偷了一下懒。执行十次,简单粗暴的来说我们手动写十行就行了,可是如果是要加100次,1000次呢?如果按这种方式,那估计你一天什么都不用干了,除了复制就是粘贴了;所以我们要使用循环语句,每次循环都执行相同的操作,只是参数不同了而已;

 

java中的循环语句有三种

for语句,while语句,do...while语句,

我们来一一了解,

循环语句1:for语句

标准格式如下:

for(初始化表达式; 判断表达式; 递增【或者递减】){

  执行语句

}

初始化表达式,就是我们执行的起点,表达式呢就是我们执行的终点,这个递增或者递减表达式,是对初始化的变量,就是我们起点的那个变量的操作,其实这三个语句都是针对我们的for循环中使用的变量的,只有这个变量递增或者递减产生变化,才会在某些时候满足我们终点判断表达式,才能停止循环,否则的话,那就是死循环,没有终点。。。。说是死了,其实是活着一直在循环了。。。

来个例子大家就懂了,来,看代码

public class ProcessCycle{
	public static void main(String [] args){
		
		for(int i = 0; i < 10; i++){
			System.out.println("i = " + i);
		}
		
	}
}

   第一句:int i = 0;可就是初始化语句,i < 10就是判断语句, i ++ 就是自加表达式

开始的时候我们初始化变量 i = 0,当i < 10的时候我们就进入循环体,执行打印的操作, 每次判断之后,我们让i 自加一次,我们动动手指头来数数,就知道执行十次之后就会停止了

来看看结果:


从零开始学java-(六)for ZCL:java流程控制2_第1张图片
 从0到9刚好十次,至于为什么不是从1到10我就不解释啦。自己考虑吧

一点,就是这个递增表达式,其实可以有多个,用逗号分隔即可

来看个例子

public class ProcessCycle{
	public static void main(String [] args){
		
		int n = 10;	
		for(int i = 0; n > 0; i++, n--){
			System.out.println("i = " + i);
		}
		
	}
}

 这里,判断表达式,我们的终点是n小于等于0的时候停止,因为进入循环的条件是n大于0,

运行结果是一样,我就不贴图了;

条件语句能嵌套,那循环语句肯定也可以嵌套,这个嵌套,我先不给例子,给大家留一道题,就是打印出来99乘法表,打印出来应该是 1 * 1 = 1    1 * 2 = 2     1 * 3 = 3 .....

这个大家自己试试,下次我们来解答,注意了,我们循环的时候,一层循环里面,嵌套另一层循环,第一层循环执行的时候,第一次满足条件,开始执行循环体,从头到尾,执行完了才会进入下一次循环,如果这个方法体是也是一个循环的话,会发生什么呢?内层的循环会执行一次呢?还是全部执行完了,才会执行外层循环的第二次呢?答案是,会先执行完内层的全部循环,然后才会执行外层的第二次 。                                  

其实还有个for循环的增强版,不过这个增强版涉及到了iterator(迭代器),这里就先不说了,免得说多了大家头晕,我们继续讲循环语句。

循环语句2:

while循环,while循环的标准格式如下

while(判断条件){

  需要循环执行的语句

  (这里是不是应该做点什么,以保证不会一直循环下去,出现死循环呢)

}

这个一看就知道好写很多,入口就一个判断条件,满足条件了就执行,注意一点,和for循环相比,入口处少了初始化,少了递增递减,但是这个其实是省不了的,因为,没有这些我们无法让循环停止下来

来个例子瞧瞧

public class ProcessCycleWhile{
	public static void main(String [] args){
		
		int i =0;
		while(i < 50){
           		System.out.println("i的值是:" + i);

		}
	}
}

 这就是while,如果变量我们想要用自己的,那么肯定是要初始化的,所以放在了外面,

如果你是个猴急的孩子,你会发现,一直输出 i 是多少,没停止啊?是的,这段代码少了一个关键的地方,那就是递增或递减操作,我们没对 i 做任何操作,所以i 始终是小于50的,那就无线的循环下去了,而且打出来的只有一句,那就是i 的值是0;

需要在这段袋中加一句 i ++;

这就完美了,,来看完整的代码

public class ProcessCycleWhile{
	public static void main(String [] args){
		
		int i =0;
		while(i < 50){
           		System.out.println("i的值是:" + i);
           		i ++;
		}
	}
}

 来看看执行结果


从零开始学java-(六)for ZCL:java流程控制2_第2张图片
 

看,执行到49就停止了,正好50次;

while循环,讲解完毕,感觉如何,循环是不是有点儿意思?

这个while循环是先判断了条件,满足条件的话就执行循环体中的语句;

而我们接下来要讲解的另一种循环语句

do ... while

和上面这个while刚好的是相反的,

来看看标准格式的例子

public class ProcessCycleDoWhile{
	public static void main(String [] args){
		
		int i = 0;
		do{
                    System.out.println("i 的值是: " + i);
		}while(i > 0);
	}
}

 

 这是标准格式,while后面跟的是判断语句,刚才我们说这个循环和第一个while循环相反,相反在哪里呢?

从代码看,我们从上向下执行,先do,进入循环体,然后while,就进行判断了,如果条件不满足,就不再执行了,如果满足就再执行,也就说不管我们条件成立不成立,都会执行一次;

执行下看看

我们初始化i 是0,然后我们对 i 做任何操作,i是不满足大于0这个条件的,但是运行结果发现,其实还是执行了一次,这就是do。。while,先执行后判断,不管条件是否成立,都会执行一次;

而while循环是先判断后执行,如果条件不成立,那么就一次都不会执行。

这个do...while个人觉得有点儿鸡肋,因为每次都是先执行了,才会判断,很容易出现问题,所以一般情况下不建议使用,除非是有这样的特殊的需求才会使用;

 

 

到此为止,三种循环方式就这么讲完了,我讲的很浅薄,很简单;都是最基本的

接下来,留两道作业题

好好理解下循环和应用循环的场景;

问题1:写一个应用程序,声明三个变量int i = 0; int index = 100; int sum = 0;

利用者三个变量和while循环,实现1到100的累加运算

问题2:写一个应用程序,实现输出100以内的数,要求这些数是3的倍数,但是不能是5的数,也不能是9的倍数,

提醒下,如何判断一个数a是不是另一个数b的倍数的方法,就是使用运算符 % 这个符号还记得么?

取余, 我们叫做模 a 模上b a % b ==0 如果成立的话,那么就证明a是b的倍数

好了,大家好好研究下;

 

 

 

 

 

 

 

 

  • 从零开始学java-(六)for ZCL:java流程控制2_第3张图片
  • 大小: 13.6 KB
  • 从零开始学java-(六)for ZCL:java流程控制2_第4张图片
  • 大小: 13.6 KB
  • 查看图片附件

你可能感兴趣的:(从零开始学java-(六)for ZCL:java流程控制2)