7.if-else分支
* 其中if-else 分为以下三类: * 1.简单if-else 语法如下: * if(条件){ * 满足执行这里 * }else{ * 不满足执行这里 * } |
习题1:
自定义一个变量性别并赋值。
如果性别为男,输出男,反之输出女。
*/ public class Test1 { public static void main(String[] args) { // char sex = '男';//自拟变量值 // if(sex=='男') { // System.out.println("为男"); // }else { // System.out.println("为女"); // } } } /* |
习题2:
自定义一个分数并赋值。
如果分数大于80小于100输出优秀
如果分数大于60小于80输出及格
如果分数大于0小于60输出不及格
*/ // int score = 75; // if(score>80 && score<100 ) { // System.out.println("优秀"); // }else if(score>60 && score<80) { // System.out.println("及格"); // }else { // System.out.println("不及格"); // } /* |
习题3:
自定义一个变量性别和年龄。
如果是男且年龄大于18岁就输出成年男性,反之输出未成年男性。
如果是女且年龄大于18岁就输出成年女性,反之输出未成年女性。
*/ // char sex = '男' ; int age = 20; // if(sex=='男') { // if(age>18) { // System.out.println("成年男性"); // }else { // System.out.println("未成年男性"); // } // }else { // if(age>18) { // System.out.println("成年女性"); // }else { // System.out.println("未成年女性"); // } // } |
注意事项:有无大括号的执行顺序。
//注意事项: //输出结果为: 222 // int age = 5; // if(age>10) { // System.out.println(111); // } // System.out.println(222); //输出结果为 111 222 int age = 5; if(age>10) System.out.println(111); System.out.println(222); //总结:如果if语句没有大括号,那么只有紧紧跟着if的第一行代码才属于if的括号内部。 |
8.switch-case分支
如果碰到有多种分支,那么不适合使用if,而是使用switch-case。
语法如下:
switch(表达式){//只允许存放byte,short,int,char,String类型
case 常量1:
语句1;
break;
case 常量2:
语句2;
break;
case 常量3:
语句3;
break;
case 常量4:
语句4;
break;
default:
语句5;
break;
}
习题1:
自定义一个月份。输出该月份的天数。假设是闰年。
// int month = 11; // switch (month) { // case 1: // System.out.println("31天"); // break; // case 2: // System.out.println("29天"); // break; // case 4: // System.out.println("30天"); // break; // case 5: // System.out.println("31天"); // break; // case 6: // System.out.println("30天"); // break; // case 7: // System.out.println("31天"); // break; // case 8: // System.out.println("31天"); // break; // case 9: // System.out.println("30天"); // break; // case 10: // System.out.println("31天"); // break; // case 11: // System.out.println("30天"); // break; // case 12: // System.out.println("31天"); // break; // default: // System.out.println("请输入合法数字"); // } // //如果有多个case可以进入相同的分支,可以合并case。 int month = 11; switch (month) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: System.out.println("31天"); break; case 2: System.out.println("29天"); break; case 6: case 9: case 11: case 4: System.out.println("30天"); break; default: System.out.println("请输入合法数字"); } |
注意事项:break的存在与否。
//注意事项:break的存在与否 //输出结果1 // int num = 1; // switch (num) { // case 0: // System.out.println(0); // break ; // case 1: // System.out.println(1); // break ; // case 2: // System.out.println(2); // break ; // case 3: // System.out.println(3); // break ; // } // } //输出结果为:1 2 3 //总结:如果switch中进入了某个case,但是case中没有break //那么后续即使不满足case也会执行下去。直到程序结束或遇到break。 // int num = 1; // switch (num) { // case 0: // System.out.println(0); // case 1: // System.out.println(1); // case 2: // System.out.println(2); // case 3: // System.out.println(3); // } |
注意事项:如何在多重循环里跳出循环用break结束。
public class Test6 { public static void main(String[] args) {
abc:for(int i = 1;i<=10;i++) { System.out.println(i); for(int j = 1;j<=10;j++) { if(j==5) { // break;//这里的break,仅仅是跳出里面的循环 //break如何跳出多重循环 //1.在指定的循环左边加上xx: //2.break xx; 即可 break abc; } System.out.println(j); } } System.out.println("正常结束了"); } } |
9.三大循环
循环主要分为三种:for循环,while循环,do-while循环。三种循环可以互相代替。
for(初始化表达式;条件表达式;累加器){
循环体
}
例如:声明一个变量存储1-10的累加,并输出。
// 例如:声明一个变量存储1-10的累加,并输出。 // int sum = 0; // for(int i = 1; i<=10 ; i++ ) { // sum = sum + i; // } // System.out.println(sum); // int sum = 0; // for(int i = 10; i>=1 ; i-- ) { // sum = sum + i; // } // System.out.println(sum); |
注意事项1: 以下代码表示什么意思
//注意事项1: 以下代码表示什么意思 // for(;;);//死循环 // System.out.println(11);//Unreachable code 无法到达的代码 |
注意事项:for循环的执行顺序。
//注意事项3:for循环的执行顺序 // for(aaa; bbb ; ccc ) { // ddd; // } //执行顺序:aaa bbb ddd ccc bbb ddd ccc 以此循环 如果bbb不满足就跳出了 // int b = 1; // int a; // for(a = 1 ,b++ ;a<=10&&b++>0;a++,b++) { // System.out.println(b); // } // System.out.println(b); |
注意事项:有无大括号的执行顺序。
//注意事项2:for循环缺失括号 和if的缺失括号 后果一致,紧紧跟着for循环的第一行代码 //才是for循环的执行体. // for(int i = 10; i>=1 ; i--) // System.out.println(1);//输出10个1 // System.out.println(2);//输出1个2 |
while(条件表达式){
循环体
}
例如:声明一个变量存储1-10的累加,并输出。
//计算1-10的累加: // int sum = 0; // int i = 1;//从1开始加 // while(i<=10) { // sum = sum + i; // i++; // } // System.out.println(sum); |
do{
循环体;
}while (boolean表达式);
例如:声明一个变量存储1-10的累加,并输出。
//do while循环 唯一的区别:先执行一次do(一定执行),再去判断 // int sum = 0; // int i = 1; // do { // sum = sum + i; // i++; // } while (i<=10); // System.out.println(sum); |
Do-while循环和while循环的区别:
do while循环 唯一的区别:先执行一次do(一定执行),再去判断
10.数组
Java中的数组可以存储多个类型相同的数值的一个容器。
有以下特点:
1、Java语言中的数组是一种 引用数据类型。不属于基本数据类型。
2、数组实际上是一个容器,可以同时容纳多个元素。
3、数组一旦创建,长度不可变。
// 语法: 数据类型 变量名[] = new 数据类型[长度]; // int arr[] = new int[10]; // 上述代码表示:定义一个长度为10,类型为int类型的数组 |
创建数组的方式:静态初始化 和 动态初始化
//静态初始化:声明数组的同时就将值给定死了。 // int arr[] = {1,2,3,4,5,6,7,8,9}; //动态初始化:声明数组的时候,就只声明长度,内容后续再赋值 // int arr[] = new int[100]; // arr[0] = 123; // arr[1] = 456; |
如何获取数组的长度
// 如何获取数组的长度。通过调用数组length属性 // System.out.println(arr.length); |
如何获取数组的指定元素的值
// 如何获取数组的指定元素的值 //根据下标来。从0开始计算。每次累加1 // System.out.println(arr[1]);//456 // System.out.println(arr[6]);//因为20行并没有赋值,且数组的类型为int类型。所以默认值为0 // System.out.println(arr[10]);//运行时出下标溢出异常 |
如何遍历数组
// 如何遍历数组 最常见的方式:通过for循环便利 // for(int i = 0 ;i<arr.length;i++) { // System.out.println(arr[i]); // } |
习题:声明一个数组,里面有10个不同值的int类型数值。求该数组的最大值并输出。
// 习题:声明一个数组,里面有10个不同值的int类型数值。求该数组的最大值并输出。 int a[] = {31,534,654,7,65,678,769,789,9,79789,879}; int max = a[0];//假设数组的第一个数就是最大值 for(int i = 1;i<a.length;i++) { if(max<a[i]) { max = a[i]; } } System.out.println(max); |
11.方法
如果某一段代码需要经常使用,那么建议将其放在方法内部。调用的时候,只需要通过方法调用即可。
public class Test5 { public static void a1() { System.out.println("我是方法1"); } //创建一个方法:方法的输出为一个数字 public static int a2() { return 122; } public static void main(String[] args) { // 如果某一段代码需要经常使用,那么建议将其放在方法内部。调用的时候,只需要通过方法调用即可。 |
方法分为两大类:
- 没有返回值的方法
- 有返回值的方法
语法分别如下:
A语法如下:
// A语法如下: /* public static void 方法名(参数列表){ 代码体; } */ |
B语法如下:
// B语法如下: /* public static 数据类型 方法名(参数列表){ 代码体; return 数据类型对应的返回值; } */ |
例如:创建一个方法,只需要打印2句话即可。
例如:创建一个方法,需要计算1-n的累加之和,n表示方法传递进来的参数。
// 例如:创建一个方法,只需要打印2句话即可。 // 例如:创建一个方法,需要计算1-n的累加之和,n表示方法传递进来的参数。 int sum = a2(); } } |