—————————— ASP.Net+Android+IOS开发、.Net培训、期待与您交流!——————————
程序流程控制
循环结构:
1.while语句
格式:
while(条件表达式)
{
执行语句;
}
执行顺序:先判断条件,满足才执行循环体。
2.do while语句
格式:
do
{
执行语句;
}while(条件表达式);
执行顺序:先执行一次循环体,再判断条件是否满足,满足再执行循环体。
与while循环相比,do while语句无论条件是否满足,循环体至少被执行一次。
3.for语句
格式:
for(初始化表达式; 循环条件表达式; 循环后的操作表达式)
{
执行语句;
}
执行顺序:
1.初始化表达式。
2.循环条件表达式。
3.满足循环条件执行循环体。
4.循环后的操作表达式。
5.循环条件表达式。
6.满足循环条件执行循环体。
......
n.不满足循环条件就结束循环。
循环语句特例:Demo01.java
/*
循环特例
*/
class Demo01
{
public static void main(String[] args)
{
// 第一种
int x = 0;
for (System.out.println("a"); x < 3; System.out.println("c"))
{
System.out.println("b");
x++;
}
/*
// 第二种(不常用,是while的另一种表现,但是换成for也没错)
int y = 0;
for ( ; y < 3; )
{
System.out.println(y);
y++;
}
// 第三种 for死循环(谨慎运行)
for (; ; )
{
}
// 第四种 while死循环(谨慎运行)
while(ture)
{
}
*/
}
}
循环语句练习1:Test01.java
/*
需求:获取1~10的和,并打印。
思路:
通过循环对1~10进行累加操作。
步骤:
1. 定义变量,用于存储不断变化的和。
2. 定义变量,用于存储被加数。
3. 定义循环,进行累加过程。
*/
class Test01
{
public static void main(String[] args)
{
/*
// while循环形式
int sum = 0;
int a = 1;
while (a <= 10)
{
sum = sum + a;
a++;
}
System.out.println("sum = " + sum);
*/
// for循环形式
int sum = 0;
for (int a = 1; a <= 10; a++)
{
sum = sum + a;
}
System.out.println("sum = " + sum);
}
}
循环语句练习2:Test02.java
/*
需求:获取1~100之间7的倍数的个数,并打印。
思路:
1. 对1~100进行遍历(循环形式)。
2. 遍历过程中对7的倍数进行操作。
3. 使用一个变量记录对7的倍数操作的次数。
步骤:
1. 定义循环语句(for)
2. 在循环中使用if条件语句判断7的倍数,条件:x%7 == 0;
*/
class Test02
{
public static void main(String[] args)
{
int count = 0; // 定义变量记录操作次数
for (int x = 1; x <= 100; x++)
{
if (x%7 == 0)
{
count++;
}
}
System.out.println("在1到100中,7的倍数有:" + count + "个");
}
}
for嵌套练习:ForForTest.java
/*
需求1:打印以下图形
*****
****
***
**
*
思路:
采用for循环的嵌套(行列控制)。
步骤:
1. 定义一个for循环(循环1),用于控制行。
2. 在循环1的内部定义一个for循环(循环2)用于控制列。
3. 使循环1的变量自增(行数依次增加),循环2的变量自减(列数依次减少)。
4. 循环1每完成一次,列数减一。
--------------------------------
需求2:打印以下图形
*
**
***
****
*****
思路:
同需求1。
步骤:
1. 同需求1。
2. 同需求1。
3. 使循环1的变量自减,循环2的变量自增。
4. 循环1每完成一次,列数减一。
规律:
需求1,使初始化值跟随外循环变化
需求2,使循环条件跟随外循环变化
--------------------------------
需求3:打印以下图形
1
12
123
1234
12345
思路:
与需求2同理
步骤:略
需求4:
打印九九乘法表
*/
class ForForTest
{
public static void main(String[] args)
{
for (int x = 0; x < 5; x++)
{
for (int y = x; y < 5; y++)
{
System.out.print("*");
}
System.out.println(); // 仅用于换行
}
System.out.println("--------------------");
for (int x = 0; x < 5; x++)
{
for (int y = 0; y <= x; y++)
{
System.out.print("*");
}
System.out.println(); // 仅用于换行
}
System.out.println("--------------------");
for (int x = 1; x <=5 ; x++)
{
for (int y = 1; y <= x; y++)
{
System.out.print(y);
}
System.out.println();
}
System.out.println("--------------------");
for (int x = 1; x <= 9; x++)
{
for (int y = 1; y <= x; y++)
{
System.out.print(y + "*" + x + "=" + y * x + "\t");
}
System.out.println();
}
}
}
其他流程控制语句
break(跳出循环)、continue(继续)
应用范围及特点:
break:循环结构和选择结构
continue:循环结构(特点:结束本次循环,继续下一次循环)
总结:break和continue单独使用时,后面不能有任何语句。
程序练习:ForForTest02.java
/*
需求:用程序将下面的图形打印出来
*
* *
* * *
* * * *
* * * * *
思路:for循环嵌套
步骤:略
*/
class ForForTest02
{
public static void main(String[] args)
{
for (int i = 0; i < 5; i++)
{
for (int j = i + 1; j < 5; j++)
{
System.out.print(" ");
}
for (int k = 0; k <= i; k++)
{
System.out.print("* ");
}
System.out.println();
}
}
}
函数(方法)
定义
定义在类中的具有特定功能的一段小程序,是java中最小的功能单元。
格式
修饰符 返回值 函数名(参数类型 形式参数1,参数类型 形式参数2, ....)
{
执行语句;
return 返回值;
}
特点
1.可以将功能代码进行封装。
2.提高代码的复用性。
3.函数只有被调用才会被执行。
4.如果函数不需要返回任何值,返回值类型用void表示,return语句可以省略。
重载(Overload)
概念:在同一个类中,允许存在一个以上的同名函数,但是它们的参数参数个数或者参数类型不能相同。
特点:与返回值无关,只与参数列表有关。
好处:方便阅读,优化程序的设计。
函数练习:FunctionTest.java
/*
需求1:定义一个功能打印矩形。
思路:
1.直接打印矩形,无需返回值。
2.有未知内容参与,矩形宽高。
步骤:
1.定义函数,接收两个未知参数(矩形宽高)。
2.使用for循环嵌套打印矩形。
需求2:定义一个功能函数,打印不确定最多几乘几的九九乘法表。
思路:
1.直接打印,无需返回值。
2.有未知内容参与,需要打印到几乘几。
步骤:
1.定义函数接收一个参数(几乘几不确定)。
2.for嵌套
*/
class FunctionTest
{
public static void main(String[] args)
{
drawRect(5,5);
drawHr(); // 分割线方法
print99(5);
drawHr();
print99();
}
public static void drawRect(int w,int h)
{
for (int x = 0; x < w; x++)
{
for (int y = 0; y < h; y++)
{
System.out.print("*");
}
System.out.println();
}
}
public static void drawHr()
{
System.out.println("------------");
}
// 打印指定范围的乘法表
public static void print99(int x)
{
if(x <= 9 && x >= 1)
{
for (int a = 1; a <= x; a++)
{
for (int b = 1; b <= a; b++)
{
System.out.print(b + "*" + a + "=" + b*a + "\t");
}
System.out.println();
}
}
else
{
System.out.println("计算范围错误!正确范围:1~9");
}
}
// 默认打印九九乘法表
public static void print99()
{
print99(9);
}
}
注意:函数内部只能调用函数,不能定义函数。
数组
定义:同一种类型数据的集合。
好处:可以自动给数组中的元素从0开始编号,方便操作这些元素。
格式1:
元素类型[] 数组名 = new 元素类型[元素个数或数组长度];
如:int[] arr = new int[3];
格式2:
元素类型[] 数组名 = new 元素类型[]{元素1, 元素2, ...};
如:int[] arr = new int[]{1,3,4,6};
int[] arr = {1,3,4,6};
注意:
new关键字用于在堆内存中产生一个实体