---------------------- <a href="http://edu.csdn.net/heima"target="blank">android培训</a>、<a href="http://edu.csdn.net/heima" target="blank">java培训</a>、期待与您交流! ----------------------
嘿嘿,发现自己越来越喜欢美工了,学的也越来越好了。哈哈。
言归正传哈,第二三天的内容看下来,发现C的基础知识更仔细的复习了一遍,掌握得更牢了。接下来是while循环结构。为了让循环结束,通常加上单条语句:如a++、a--、--a、++a,因为它们是独立存在的。在这个情况,a++和++a就没有区别了,如果是x=a++或++a就有区别。
Ctrl c是强制执行命令行的快捷键。While和do while的格式就不写了,举的例子会体现。它们的区别是后者先执行再判断,满足,再执行。忘了条件是否满足,循环体至少执行一次。
另一种循环结构是for语句,格式是:(初始化表达式;循环条件;循环后操作表达式如x++){ }。它和while的区别是如果将用于循环的增量定义在此语句中,该变量只在for语句中有效,而while结束后,初始化变量值仍会存在。所以它们虽然可互换,但在定义循环增量时,for更适合。
(变量都有作用域,超出就不会再用了)。
综上,无限循环的最简单表达形式一为:for(;;){ }。二为:while(默认为true){ }。
接下来时举例方便理解。
如打印1到10的和。
Int sum=0;(定义变量来存储不断变化的和)
Int x=1;(定义变量来记录不断变化的被加的数)
While (x<=10)(定义循环)
{
Sum=sum+x;
X++;
}
System.out.println(sum);转换为for为:
Int sum=0;
For (int x=0;x<=10;x++)
{
Sum+=x(即sum=sum+x; x++)
}
System.out.printIn(sum); (这两语句,主函数省略)
要明确哪些语句需要参加循环,哪些不需要。
如,求1到100之间8的倍数.思路是先要对1到100进行循环,即遍历。然后是定义条件,最后是定义一个记录次数的变量。步骤是1,用for定义循环语句 2,定义判断,只要是8的倍数就行,用x%8==0;3,定义一个随8的倍数的出现而自增的变量。省略主函数之后的代码为:
Int count=0;(3)
For (int x=1;x<=100;x++)(1)
{
If( x%8==0 )(2)
Count++;
}
System.out.println(“count=”+count);
从中可以得出两个一是累加思想:通过变量记录住每次变化的结果,通过循环形式,进行累加动作。
二是计数器思想:通过一个变量记录住数据的状态变化,也是通过循环完成。
接下来是for嵌套。
先举个打印长方形的例子
For( int x=0; x<5 ;x++)
{
For ( int y=0; y<5; y++)
{
System.out.print(“$”);
}
System.out.println()
}
此例中,可在命令行里运行发现,外循环控制的是行数,内循环控制的是每一行的列数,也就是每一行中元素的个数。
上例中不能忘记的是它都是定义在主函数内的。
如果用函数包装起来,能更便捷自定义长方形,方法如下:
Public static void draw (int row ,int col )
接着把上述x<5改成x<row ;y<5改为y<col即可。
还要懂得运用一个打印类似三角型有尖儿的图形。
方法是在上述代码中进行如下更改:尖儿朝上,改变条件,让条件随着外循环改变;尖儿朝下,改变初始化值,让初始化值随外循环变化。总结了老师的例子,可记着一个不是规律的小规律:改变条件一般是y<=x;改变初始化值一般是y<=x。
同样for嵌套可解决乘法表问题。懂函数后,直接包装成函数形式,如下:
Public static void shengfbiao( int num )
for ( int x=1; x<=num; x++)
{
for (int y=1; y<=x; y++)
{
System.out.print(y+”*”+x+”=”+y*x+”\t”);
]
System.out.println();
}
接下来是关于break和 continue。它们都有作用范围,超出范围会提示,并且单独存在时,它们的下面不可以有任何语句,因为执行不到。区别是前者可用于选择结构和循环结构,后者只能应用于循环结构,是结束本次循环继续下一次循环的意思,可举个例子理解下:
For ( int x=1; x<=10; x++)
{
If ( x%2==1)
Continue;
System.out.println(“ x=” +x);
}
在continue的干扰下,此输出打印的是0到10的偶数。
接下来是很重要的函数,它是定义在类中的,也称为方法。JAVA中对功能的定义就是通过函数的形式体现的。格式是:修饰符 返回值类型 函数名(参数类型形式参数1,…参数类型 形式参数n){执行语句;return返回值 } (形式参数即变量,返回值是返回给调用者) 函数被调用才会被执行。方法:
eg: int x=函数名(数值);
System.out.printIn(“x=” +x);
函数的特点是提高复用性,可将功能包装。函数里不能定义函数,只能调用。
当们没有具体返回值时,返回值用一个特殊的关键字标识:void,在此情况下,return可不写。
很棒的是函数可任放,无论放哪儿,系统会主动从主函数读起执行起。
那么怎么定义函数呢?这是我们学函数必须要懂的应用。步骤是:
1.先明确结果是什么。即明确返回值
2.明确是否需要未知的内容参与运算。即明确函数的参数列表(包括参数类型和个数)
举个例子,获取较大的数。
public static int getmax( int a, int b )
{
return ( a>b )? a: b ;
}
上例中运用了三元运算符,为了加深理解,举个加法功能的错例:
public static int getmax( int a, int b )
{
system.out.println ( a+b ) ;
return ;
}
错的原因是思想有问题,因为只为完成加法运算,至于是否要打印操作,那是调用者的事儿,不要再该功能体现。
最后说说重载(overlood),同一类中,允许有一个以上的同名函数,只要参数列表不同即可运用重载。重载与返回值无关。定义的功能相同,但参与运算的未知内容不同时,也是可以运用重载的。
如果参数列表一样,返回值不同,则这函数不可以和给定的函数同时存在一个类中。
---------------------- <a href="http://edu.csdn.net/heima" target="blank">android培训</a>、<a href="http://edu.csdn.net/heima" target="blank">java培训</a>、期待与您交流! ----------------------