1.循环嵌套语句
for(){
for(){
}
}
eg:打出一个直角三角形 和一个倒着的等腰三角形
public class Test01 {
public static void main(String[] args) {
for (int i = 1; i < 10; i++) {
for (int j = 1; j < i; j++) {
System.out.print("*");
}
System.out.println();
}
for (int i = 10; i > 0; i--) {
for (int j = i; j < 10; j++) {
System.out.print(" ");
}
for (int j = 1; j <= i; j++) {
System.out.print("* ");
}
System.out.println();
}
}
}
eg:打印出来一个九九乘法表
public class Test02 {
public static void main(String[] args) {
for (int i = 1; i < 10; i++) {
for (int j = 1; j <= i; j++) {
// if(j*i<10){
// System.out.print(j+"*"+i+"="+(j*i)+" ");
// }else {
// System.out.print(j+"*"+i+"="+(j*i)+" ");
// }
System.out.print(j+"*"+i+"="+(j*i)+(((j*i))<10?" ":" "));
}
System.out.println();
}
}
}
eg:找出素数(质数)的小程序
public class Test03 {
public static void main(String[] args) {
for (int i = 2; i < 51; i++) {
boolean k = true;
for (int j = 2; j < i; j++) {
if(i%j==0){
k = false;
}
}
if(k){
System.out.println(i);
}
}
}
}
eg:使有序序列,倒叙
public class Test06 {
public static void main(String[] args) {
int[] arr = {1,2,3,4,5};
for (int i = 0; i < arr.length/2; i++) {
int temp = arr[i];
arr[i] = arr[arr.length-i-1];
arr[arr.length-i-1] = temp ;
}
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]+",");
}
Scanner in = new Scanner(System.in);
}
public static void swap(int[] arr ,int a ,int b){
}
}
eg:
public class Demo06 {
//需求:计算圆形面积 3.14 半径(整数)
public static double getCircle(int r){ //r = 10
// double area = 3.14*r*r;
// return area;
return 3.14*r*r;
}
//需求:计算长方形周长 长和宽(整数)
public static int getLength(int a, int b){
return (a+b)*2;
}
public static void main(String[] args) {
// double area = getCircle(10);
// System.out.println(area);
// System.out.println(getCircle(10));
// int length = getLength(10, 5);
// int length1 = getLength(20, 10); //调用方法,并将方法运算后的结果存储到length1变量中
// System.out.println(length1);
int max = getMax(15,6);
System.out.println(max);
}
//需求:比较两个整数的大小,返回较大的数
public static int getMax(int a, int b){
/*if(a > b){
return a;
}else{
return b;
}*/
/*if(a > b){
return a;
}
return b;*/
// boolean类型表达式?表达式1:表达式2;
// int max = (a > b)?a:b;
// return max;
return (a>b)?a:b;
}
//需求:比较两个整数,是否相等
public static boolean equals(int a , int b){
/*if(a == b){
return true;
}else{
return false;
}*/
/*if(a == b)
return true;
return false;*/
// return (a == b)?true:false;
return a == b;
}
}
2.其他流程语句:
1.break;
能用在switch语句和循环语句中。
代表的意思是:结束。
如果循环嵌套语句,那么break结束的是它所在的循环。
2.continue;
只能用在循环语句。
代表的意思是:结束当前此次正在进行中的循环,继续下一次循环。
3.函数:
也称为方法,一段完成特定功能的独立的代码块,定义在类中。
作用:提高代码的复用性。
格式:
修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2,....){ //参数列表的个数>=0
执行语句;...
return 返回值;
}
修饰符: public static 或者 static
返回值类型:
1.方法体运算后所产生的数据对应的数据类型
2.void,可以省略return关键字
(...)参数列表:
简单记就是变量的声明
return:
1.将方法体运算的结果返回给方法的调用者
2.方法结束的标志
5片:
寄存器,本地方法区,方法区,栈内存,堆内存
方法重载:
为什么有方法重载?
因为:在一个类中,可能会去编写功能相似的方法,但是都需要起不同的方法名,记忆很痛苦。
在一个类中,功能相似的方法,允许同名的方法存在,但是参数列表不同,与返回值类型无关。
参数列表不同:
类型不同,个数不同,顺序不同
4.数组
概念:
相当于容器,用于存储相同类型的一组数据。
特点:
1.长度固定
2.每一个元素都有下标(角标),从0开始
3.元素类型可以是基本类型,也可以是引用类型
声明语法格式:
动态声明:
元素类型[] 数组名 = new 元素类型[长度];
元素类型 数组名[] = new 元素类型[长度];
eg: int[] arr = new int[3];
创建一个数组,数组名为arr,数组能存放3个int类型的数据.
arr是引用类型;
arr[0] = 100; //赋值操作
静态声明:
元素类型[] 数组名 = new 元素类型[]{元素1,元素2,.....};
简写格式:元素类型[] 数组名 = {元素1,元素2,.....};
数组属性:
数组名.length :获取数组的长度
数组名.length-1 : 获取数组下标的最大值
基本操作:
遍历,求和,求平均值.
public class Demo08 {
public static void main(String[] args) {
//声明数组
String[] arr = new String[3];
//元素赋值
arr[0] = "hello";
int[] arr1 = new int[3];
arr1[0] = 20;
int[] arr2 = {1,2,3,4,5};
// arr2[arr2.length-1] = 100; //将数组最后一个元素更改为100
//获取数组元素
// System.out.println(arr2[3]);
//遍历数组中元素,求和,求平均值
int sum = 0;
for(int i = 0 ; i < arr2.length; i++ ){
System.out.println(arr2[i]);
sum += arr2[i];
}
System.out.println("sum = " + sum);
System.out.println("avg = " + (sum/arr2.length));
//int[] arr = {1,2,3,4,5};
//int[] arr = {1,3,4,6,7,8,9};
}
}