Day04Java基础之循环语句,重载

Day04

  1. 循环语句结构概述和for 语句的格式及其使用
    (1) 循环结构的分类:for ; while; do…while;
    (2) for语句的格式
    for (初始化表达式;条件表达式;循环后的操作表达式) {
    循环体;
    }
    (3) 执行流程:
    A. 执行初始化语句
    B. 执行判断条件语句,看其返回值时true还是false
    a. 如果是true,就继续执行
    b. 如果时false,就结束循环。
    C. 执行循环体语句;
    D. 执行循环后的操作表达式
    E. 回到B继续。
    (4) 例题:在控制台输出10次“helloworld”
    程序:
class Test0_For	{
	public static void main(String[] args)	{
		for(int i =1; i <= 10; i++)	{
			System.out.println(“HelloWorld”);
		}
	}
}
  1. 循环结构for 语句的练习之获取数据
    (1) 请在控制台上输出数据1-10
class Test1_For	{
	public static void main(String[] args)	{
		for(int i =1; i <= 10; i++)	{
			System.out.println(“i = ” + i);
		}
	}
}

(2) 请在控制台上输出数据1-10

class Test1_For	{
	public static void main(String[] args)	{
		for(int i =10; i >= 1; i--)	{
			System.out.println(“i = ” + i);
		}
	}
}

(3) 注意事项
A. 条件判断语句无论简单还是复杂,都是boolean类型。
B. 循环体语句如果是一条语句,大括号可以省略;如果是多条语句,大括号不能省略,建议永远不要省略。
C. 一般来说,有左大括号就没有分号,有分号就没有左大括号。
3. 循环结构for 语句的练习之求和思想
(1) 求出1-10之间数据之和

class Test2_For	{
	public static void main(String[] args)	{
		int sum = 0;
			for(int i =1; i <= 10; i++)	{
				sum = sum + i;
			}
			System.out.println(“sum = ” + sum);
		}
	}

(2) 求出1-100之间偶数之和

class Test2_For	{
	public static void main(String[] args)	{
		int sum = 0;
			for(int i =1; i <= 10; i++)	{
				if (i % 2 = 0) {
					sum = sum + i;
				}
			}
			System.out.println(“sum = ” + sum);
		}
	}

(3) 求出1-10之间奇数之和

class Test2_For	{
	public static void main(String[] args)	{
		int sum = 0;
			for(int i =1; i <= 10; i++)	{
				if (i % 2 != 0) {
					sum = sum + i;
				}
			}
			System.out.println(“sum = ” + sum);
		}
	}
  1. 循环结构for 语句的练习之水仙花
    (1) 在控制台上输出所有的水仙花数。
    水仙花数指一个三位数,其各个数字的立方和等于该数本身。
    如:153就为水仙花数
    153 = 111 + 555 + 333 = 153
class Test3_For	{
	public static void main(String[] args)	{
		for(int i =100; i <= 999; i++)	{     //获取到100-999
			int ge = i % 10;          //153 % 10
			int shi = i / 10 % 10;       //12 % 10
			int bai = i / 10 / 10 % 10;    //1 % 10
			if (ge * ge * ge + shi * shi * shi + bai * bai * bai == i) {
				System.out.println(i);
			}
		}
	}
}
  1. 循环结构for 语句的练习之统计思想
    (1) 统计水仙花数有多少个
class Test4_For	{
	public static void main(String[] args)	{
			int sum = 0;
			for(int i =100; i <= 999; i++)	{     //获取到100-999
				int ge = i % 10;          //153 % 10
				int shi = i / 10 % 10;       //12 % 10
				int bai = i / 10 / 10 % 10;    //1 % 10
				if (ge * ge * ge + shi * shi * shi + bai * bai * bai == i) {
					sum = sum + 1;
				}
			}                          //for语句循环之后i 会被释放,不能再使用
				System.out.println(sum);
		}
	}		
  1. 循环结构while语句格式及基本使用
    (1) while循环的格式
    基本格式:
    while(判断条件语句) {
    循环体语句;
    }
    完整格式:
    初始化语句;
    while(判断条件语句) {
    循环体语句;
    控制条件语句;
    }
    (2) 执行流程:
    A. 执行初始化语句
    B. 执行判断条件语句,看其返回值时true还是false
    a. 如果是true,就继续执行
    b. 如果时false,就结束循环。
    C. 执行循环体语句;
    D. 执行控制条件语句;
    E. 回到B继续。
    (3) 请在控制台输出1-10
class Test0_While	{
	public static void main(String[] args)	{
		int x = 1;
		while(int x < = 10; )	{
			System.out.println(“x = ” + x);
			X++;
		}     //while循环结束后,x可以继续被使用
	}
}
  1. 循环结构while语句的练习、
    (1) 求1-100之和
class Test1_While	{
	public static void main(String[] args)	{
		int x = 1;
		int sum = 0;
		while(int x <=10; )	{
			sum = sum + x;
			x++;
		}
		System.out.println(“sum = ” + sum);
	}
}

(2) 求水仙花数共多少个

class Test2_While	{
	public static void main(String[] args)	{
		int x = 100;
		int sum = 0;
		while(int x <=999; )	{
    	  	ge = x % 10;
			shi = x / 10 % 10;
   			bai = x / 10 / 10 % 10;
			if (ge * ge * ge + shi * shi * shi + bai * bai * bai == x )	{
				sum ++;
			}
			x++;
		}
		System.out.println(“sum = ” + sum);
	}
}
  1. 循环结构do … while语句格式及基本使用
    (1)do … while循环的格式
    基本格式:
    do {
    循环体语句;
    } while(判断条件语句);

完整格式:
初始化语句;
do {
循环体语句;
控制条件语句;
} while(判断条件语句)
(2) 执行流程:
A. 执行初始化语句
B. 执行循环体语句;
C. 执行控制条件语句;
D. 执行判断条件语句,看其返回值时true还是false
a. 如果是true,就继续执行
b. 如果时false,就结束循环。
E. 回到B继续。
(3) 请在控制台输出1-10

	class Test0_DoWhile	{
		public static void main(String[] args)	{
			int x = 1;
			do	{
				System.out.println(“x = ” + x);
				x++;
		} 	while(int x < = 10; )			
	}
}
  1. 循环结构三种循环语句的区别
    (1) do…while 循环至少执行一次循环体。
    (2) for,while循环必须先判断条件是否成立,然后决定是否执行循环。
    (3) 如果想在循环结束后继续使用控制条件的那个变量,用while循环否则用for循环。不知道用谁就用for循环因为变量及早的从内存中消失,可以提高内存使用效率。

  2. 循环结构注意事项之死循环
    (1) 一定要注意控制条件语句控制的那个控制变量问题,不要弄丢了,否则容易进入死循环。
    (2) 两种最简单的死循环格式:
    while (true){…}
    for(; ; 😉 {…}

  3. 循环结构嵌套输出四行五列的星星
    (1) 输出四行五列的星星

class Test	{
	public static void main(String[] args)	{
		for( int x = 1;x <= 4;x++)	{
			for(int y = 1;y <= 5;y++)	{
				System.out.print(“*”);
			}
			System.out.println(); //换行
		}
	}
}

(2) 结论:外循环控制行数,内循环控制列数。
(3) System.out.println(“”)会自动换行
(4) System.out.print(“
”)会接着后面输出,不会换行。

  1. 循环结构循环嵌套输出星星正三角形五行,每行有对应行数个星星
class Test0		{
	public static void main(String[] args)	{
			for( int x = 1;x <= 5;x++)	{
				for(int y = 1;y <= x;y++)	{
					System.out.print( “*”);
				}
			System.out.println();//换行
			}
		}
	}
  1. 循环结构九九乘法表
    (1) 九九乘法表
class Test0		{
	public static void main(String[] args)	{
			for( int x = 1;x <= 9;x++)	{
			for(int y = 1;y <= x;y++)	{
				System.out.print(y + “*” + x + “=” + (y * x) + ‘\t‘ );//加入了tab键  
					System.out.print(“ “);
				}
			System.out.println();//换行
			}
		}
}

(2) 代码优化
‘ \x ’ x表示任意,\是转义符号,这种做法叫转移字符。
‘ \t ’ tab键的位置
‘ \r ’ 回车
‘ \n ’ 换行
‘ \” ’ 转义双引号,想输出双引号可以用转义字符
‘ \’ ’ 转义单引号,想输出单引号可以用转义字符
15. 控制跳转语句break 语句
break语句只能在switch或者循环中使用。
16. 控制跳转语句continue语句
continue语句只能在循环中使用,含义是终止本次循环循环体就结束了,继续下次循环。
17. 控制跳转语句标号
(1) 标号:标记某个循环对其控制。
(2) 标号组成规则:其实就是合法的标识符。
18. 控制跳转语句的练习
目的:想输出2次;7次;13次” “Java基础班”.

class Test_Mark	{
	public static void main(String[] args)	{
		for(int x = 1; x <= 10; x++)	{
			if(x % 3 ==0)	{
				//break;                            //输出2次“Java基础班”.
				//continue;           //输出7次“Java基础班”.
				//System.out.println(“Java基础班”);  //输出13次“Java基础班”.
				}
				System.out.println(“Java基础班”);
			}
		}
	}
  1. 控制跳转语句return语句
    (1) 作用:返回;它的作用不是结束循环,而是结束方法。
    (2) return,continue,break区别
    return是结束方法。
    continue是终止本次循环而继续下一次循环。
    break是跳出循环。
  2. 方法概述和格式说明
    (1) 方法的作用:是为了提高代码的复用性
    (2) 方法是完成某个特定功能的模块。
    (3) 方法的格式
修饰符 返回值类型 方法名 (参数类型 参数名1,参数类型 参数名2…)	{
		方法体语句;
		return 返回值;
}

(4) 方法的格式说明
a. 修饰符:目前就是 public static后面有其他的。
b. 返回值类型:就是功能结果的数据类型。如void。
c. 方法名:符合命名规则即可,方便调用。如main,就是主方法的方法名。
d. 参数:
实际参数:就是实际参与运算的。
形式参数:就是方法定义上的,用于接收实际参数的。
e. 参数类型:就是参数的数据类型。如String[]。
f. 参数名:就是变量名。如args。
g. 方法体语句:就是完成功能的代码。
h. return:结束方法的。
i. 返回值:就是功能的结果,由return带给调用者。
20. 方法之求和案例及其调用
(1) 如何写一个方法
a. 首先明确一下返回值类型
b. 明确参数列表
(2) 例:求两个数据之和的案例
分析:两个整数的和还是整数;有两个未知内容参与运算。
class Test_Sum {
public static void main (String[] args) {
int add(10,20);
System.out.println(sum);
}
public static int add (int a,int b) {
int sum = a + b;
return sum;
}
}
21. 方法的注意事项
(1) 方法的调用
有返回值方法的单独调用一般没有意义,所以不推荐。
输出调用,但是不够好,因为我们可能需要对结果进行进一步的操作。
赋值调用,推荐方案。
(2) 案例
方法不调用不执行。
方法与方法是平级关系,不能嵌套定义。
方法定义的时候参数之间用逗号隔开。
方法在调用的时候不用再传递数据类型。
如果方法有明确的返回值,一定要用return带回一个值。
22. 方法的练习
(1) 需求:键盘录入两个数据,返回两个数中的较大值。

import java.util.Scanner;
class Test_Method	{
	public static void main(String[] args)	{
		Scanner sc = new Scanner(System.in);
		System.out.println(“请输入第一个数据”);
		int x = sc.nextInt();
		System.out.println(“请输入第二个数据”);
		int y = sc.nextInt();
		int max = getMax(x,y);
		System.out.println(max);
	}
/* 返回两个整数的较大值
1.	明确返回值类型 int
2.	明确参数列表
*/
 	public static int getMax(int a,int b)	{
		Return a > b ? a : b;
	}
}

(2) 需求:键盘录入两个数据,比较两个数是否相等。

import java.util.Scanner;
class Test_Method	{
	public static void main(String[] args)	{
		Scanner sc = new Scanner(System.in);
		System.out.println(“请输入第一个数据”);
		int x = sc.nextInt();
		System.out.println(“请输入第二个数据”);
		int y = sc.nextInt();		
    	boolean  b = isEquals(x,y);
		System.out.println(b);
	}
/* 返回两个整数的较大值
1.	明确返回值类型boolean
2.	明确参数列表int a,int b
*/
	public static int isEquals(int a,int b)	{
		return a ==b;	
	}
}
  1. 方法之输出星形及其调用
    (1) 需求:根据键盘录入的行数和列数,在控制台输出星形。
import java.util.Scanner;
class Test_Method	{
	public static void main(String[] args)		{
			Scanner sc = new Scanner(System.in);
			System.out.println(“请输入行数”);
			int x = sc.nextInt();
			System.out.println(“请输入列数”);
			int y = sc.nextInt();
			print(x,y);    //当返回值是void不允许输出调用,只能使用单独调用,。
		}
	public static void print(int a,int b)	{			//没有具体类型,用void
			for(int i = 1;i <= a;i++)	{
				for(int j = 1;j <= b;j++)	{
					System.out.print(‘*’); 
			}
			System.out.println();
	}
	return ;                    //如果返回值类型是void,return可以省略。
}
  1. 方法之打印九九乘法表
import java.util.Scanner;
class Test_Method	{
		public static void main(String[] args)	{
			Scanner sc = new Scanner(System.in);
			System.out.println(“录入一个数,范围1-9之间”);
			int num = sc.nextInt();
			print99(num);
		}
		public static void print99(int a)	{
			for (int i = 1; i <= a ; i++)	{
				for(int j = 1; j <= i; j++)	{
					System.out.print(j + “*” + i + “=” + (j*i) + “\t”);
				}
				System.out.println();
			}
		}
}
  1. 方法重载
    (1) 求和案例,2个整数和,3个整数和,4个整数和。
class Test_Overload;
	public static void main(String[] args)		{
	int sum1 = add(10,20);
	System.out.println(sum1);

	int sum2 = add(10,20,30);
	System.out.println(sum2);
	}
	public static int add(int a,int b)	{
		 return a + b;
	}
	public static int add(int a,int b,int c)	{
		 return a + b + c ;
	}
}

(2) 重载:方法名相同,参数列表不同,与返回值类型无关
(3) 重载的分类:
A. 参数类型不同
B. 参数个数不同
27. 重载的练习
例:比较两个数是否相等,参数类型分别为两个int型,两个double型,

class Test_Overload	;
	public static void main(String[] args)	{
		boolean b1 = isEquals(10,20);
		System.out.println(b1);

		boolean b2 = isEquals(10.5,20.5);
		System.out.println(b2);
	}
	public static boolean isEquals (int a,int b)	{
	return (a == b);
	}
	public static boolean isEquals(double a,double b)	{
	return (a == b);
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值