常见的分支: if-else swtich-case
public static void main(String[] args) {
/*
* 知道代码的顺序是从上至下的,但是可以通过分支语句来改变代码的执行顺序。
*
* 常见的分支: if-else swtich-case
其中if-else 分为以下三类:
* 1.简单if-else 语法如下:
* if(条件){
* 满足执行这里
* }else{
* 不满足执行这里
* }
* 自定义一个变量性别并赋值。
如果性别为男,输出男,反之输出女。
*/
// char sex = '男';//自拟变量值
// if(sex=='男') {
// System.out.println("为男");
// }else {
// System.out.println("为女");
// }
/*
* 2.多重if-else
* 习题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.嵌套if:
自定义一个变量性别和年龄。
如果是男且年龄大于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的括号内部。
}
常见的分支结构2: switch-case
public static void main(String[] args) {
//常见的分支结构2: switch-case
//如果需要判断的条件很多,就不适合用if-else
//例如:每个月有多少天 如果需要用If-else实现 可能需要写12个if 很累赘
//语法如下:
/*
switch(表达式){
case 常量值1:
代码;
break;
case 常量值2:
代码;
break;
case 常量值3:
代码;
break;
.......
default:
代码;
}
*/
//例如自定义一个月份。输出该月有多少天 假设是闰年。
// 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的存在与否
//输出结果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);
// }
}
java中的常见循环:分为三种for循环 while循环 do-while循环
public static void main(String[] args) {
//java中的常见循环:分为三种for循环 while循环 do-while循环
//三种循环可以互相替代。
for循环的语法:
/*
for(初始化表达式; 判断表达式 ; 累加器 ){
循环体
}
*/
// 例如:声明一个变量存储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: 以下代码表示什么意思
// for(;;);//死循环
// System.out.println(11);//Unreachable code 无法到达的代码
//注意事项2:for循环缺失括号 和if的缺失括号 后果一致,紧紧跟着for循环的第一行代码
//才是for循环的执行体.
// for(int i = 10; i>=1 ; i--)
// System.out.println(1);//输出10个1
// System.out.println(2);//输出1个2
//注意事项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);
while循环的语法:
while(表达式){
循环体
}
//计算1-10的累加:
// int sum = 0;
// int i = 1;//从1开始加
// while(i<=10) {
// sum = sum + i;
// i++;
// }
// System.out.println(sum);
do while循环
唯一的区别:先执行一次do(一定执行),再去判断
// int sum = 0;
// int i = 1;
// do {
// sum = sum + i;
// i++;
// } while (i<=10);
// System.out.println(sum);
}
}
java中的数组
public static void main(String[] args) {
// 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类型数值。求该数组的最大值并输出。
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);
}
方法
public static void a1() {
System.out.println("我是方法1");
}
//创建一个方法:方法的输出为一个数字
public static int a2() {
return 122;
}
public static void main(String[] args) {
// 如果某一段代码需要经常使用,那么建议将其放在方法内部。调用的时候,只需要通过方法调用即可。
方法分为两大类:
// A. 没有返回值的方法
// B. 有返回值的方法
// A语法如下:
/*
public static void 方法名(参数列表){
代码体;
}
*/
// B语法如下:
/*
public static 数据类型 方法名(参数列表){
代码体;
return 数据类型对应的返回值;
}
*/
// 例如:创建一个方法,只需要打印2句话即可。
// 例如:创建一个方法,需要计算1-n的累加之和,n表示方法传递进来的参数。
int sum = a2();
}
break如何跳出多重循环
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("正常结束了");
}