javaSE21/9/5
JAVA流程控制
For循环
输出1~1000能被5整除的数,并且每行输出三个
public class Demo {
public static void main(String[] args) {
for (int i = 1; i <=1000; i++) {
if (i%5==0){
System.out.print(i+"\t");//\t为空格,即输出数字后在后面带一个空格
}//println为输出一个后自动换行,print不换行
if(i%15==0){
System.out.println("\n");//\n为手动换行
}
}
}
}
九九乘法表
public class Demo {
public static void main(String[] args) {
for (int i = 1; i <= 9; i++) {
for (int m = 1; m <= i; m++) {
System.out.print(i +"*"+ m+"="+i*m+" \t");
}
System.out.println();
}
}
}
增强for循环
- 主要用于数组和集合
- 格式:for(声明语句 :表达式){
//代码句子
}
break和continue
public class Demo {
public static void main(String[] args) {
int i = 0;
while(i<100){
i++;
System.out.println(i);
if(i==30){
break;//主要用于终止循环和switch语句,break会跳过循环,直接执行循环外的语句
}
}
System.out.println(i);
System.out.println("==============================");
while (i<100){
i++;
if (i%10==0){
continue;//会结束本次循环,进行下一次循环,如果满足continue的条件在循环内的continue下面的语句不会执行
}
System.out.println(i);
}
}
}
循环练习
打印三角形
public class Demo {
public static void main(String[] args) {
for (int i = 1; i <= 5; i++) {
for (int j = 5; j >= i; j--) {
System.out.print(" ");
}
for (int j = 1; j <= i; j++) {
System.out.print("*");
}
for (int j = 2; j <= i; j++) {
System.out.print("*");
}
System.out.println();
}
}
}
JAVA方法
- java方法是语句的集合,他们在一起执行一个功能
- 方法是解决一类问题的步骤的有序组合
- 方法包含于类或对象中
- 方法在程序中被创建,在其他地方被引用
- 尽量保持方法的原子性,一个方法只完成一个功能
方法定义格式:
修饰符 返回值类型 方法名(参数类型 参数名){
方法体
return 返回值;
}
方法调用
对象名.方法名(实参列表)
public class Demo {
public static void main(String[] args) {
int max = max(2,2);
System.out.println(max);
}
public static int max(int a,int b){
int num = 0;
if(a == b){
System.out.println("a与b一样大");
return 0;
}else if(a>b){
num = a;
}else{
num = b;
}
return num;
}
}
方法重载
- 重载就是在一个类中,有相同的函数名称,但形参不同的函数
可变参数
- 在方法声明中,在指定参数类型后加一个省略号(...)
- 例:普通参数:int i;可变参数:int...i;
- 一个方法中只能指定一个可变参数,它必须是方法的最后一个参数,任何普通的参数必须在它之前声明
递归
- 递归就是A方法调用A方法,自己调用自己
-
递归结构包括两部分
递归头:确定什么时候不调用自身方法。如果没有头,将陷入死循环
递归体:确定什么时候需要调用自身方法 - 递归不能用于大量数据,少量可以
public class Demo {
public static void main(String[] args) {
System.out.println(dg(4));
}
//阶乘
public static int dg(int i){//定义一个int类型的递归方法
if (i==1){//如果i=1,返回i
return 1;
}else{//不是1,返回dg方法,直到为1
return i*dg(i-1);
}
}
}

数组
定义格式:
数组类型[] 数组名 = new 数组类型[数组长度]
public class Demo {
public static void main(String[] args) {
int[] arr = new int[3];
int sum = 0;
arr[0] = 12;
arr[1] = 23;
arr[2] = 10;
for (int i = 0; i < arr.length; i++) {
sum = sum+arr[i];
}
System.out.println(sum);
}
}
静态初始化:
int[] arr = {1,2,3};
数组的使用
- For-Each循环
- 数组作为方法入参
public class Demo {
public static void main(String[] args) {
int[] arr = {1,2,3,4,5};
printArr(arr);
}public static void printArr(int[] arr){
int sum = 0;
for (int i = 0; i < arr.length; i++) {
sum+=arr[i];
}
System.out.println(sum);
}
}
- 数组作为返回值
public class Demo {
public static void main(String[] args) {
int arr[] = {1,2,3,4,5};
int[] reverse = reverse(arr);//有返回值用变量接收
printarr(reverse);//无返回值可直接调用
}
//反转数组
public static int[] reverse(int[] arr){
int[] result = new int[arr.length];//定义一个返回结果,长度为原来数组的长度
for (int i = 0,j = result.length-1; i < arr.length; i++,j--) {
//i为原来数组的索引,j为反转数组的索引,i有约束条件即可
result[j] = arr[i];
}
return result;
}
//打印数组
public static void printarr(int[] arr){
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
}
浙公网安备 33010602011771号