流程控制语句
1.if语句
1.1if的三种格式
if(判断条件){
语句体
}
//=================================
if (判断条件){
语句体
}else{
语句体2
}
//=================================
if (判断语句){
语句体1
}else if(判断语句){
语句体2
}
2.switch语句
switch(表达式){
case值1:
语句体1;
break;
case值2:
语句体2;
break;
}
case的穿透性
package com.itheima.test;
public class SwitchTest {
/*
需求: 定义一个方法, 方法接收一个月份, 程序打印出不同的季节
3 4 5 : 春季
6 7 8 : 夏季
9 10 11 : 秋季
12 1 2 : 冬季
*/
public static void main(String[] args) {
Day(6);
}
public static void Day(int month) {
switch (day) {
case 1:
case 2:
case 3:
System.out.println("敲代码");
break;
case 4:
case 5:
System.out.println("复习");
// break;
case 6:
case 7:
System.out.println("出去玩");
break;
default:
System.out.println("您的输入有误!");
break;
}
}
}
3.for循环语句格式和执行流程
格式:
for(初始化语句 ;条件判断语句 ; 条件控制语句){
循环体语句
}
public static void main(String []args){
for(int i = 0; i < 5 ; i++){
System.out.println("跑圈");
}
}
执行流程:
- 执行初始化语句, 在整个循环期间, 只执行一次
- 执行判断条件, 看其返回的结果是true, 还是false
false : 循环结束
true : 进入第三步
-
执行循环体语句
-
执行条件控制语句
-
回到2继续
3.1案例
3.1.1
1求偶数和
public class ForTest { public static void main(String[] args) { int evenNumberSum = getEvenNumberSum(); System.out.println("1~100之间的偶数和为:" + evenNumberSum); } public static int getEvenNumberSum() { int sum = 0; for (int i = 1; i <= 100; i += 2 ) { if (i % 2 == 0) { sum += i; } } return sum; } public static int getEvenSum() { int sum = 0; for (int i = 2; i <= 100; i += 2) { // 2 4 6 8 10 12... sum += i; } return sum; } }3.1.2水仙花数
package com.itheima.test; public class ForTest { public static void main(String[] args) { printNarcissusNumber(); } public static void printNarcissusNumber() { // 通过循环获取所有的三位数(因为水仙花数是一个三位数) for (int i = 100; i <= 999; i++) { // 对每一个三位数进行数值拆分 int ge = i % 10; int shi = i / 10 % 10; int bai = i / 100; if (ge * ge * ge + shi * shi * shi + bai * bai * bai == i) { System.out.println(i); } } } }3.2for循环语句注意事项
1.循环 { } 中定义的变量,在每一轮循环结束后,都会从内存中释放
2.循环 ( ) 中定义的变量,在整个循环结束后,都会从内存中释放
3.循环语句 ( ) 和 { } 之间不要写分号
4.循环嵌套
外循环执行一次,内循环执行一圈
案例
public class Test2 { public static void main(String[] args) { test(); } public static void test(){ for (int i = 0; i < 6; i++) { for (int j = 0; j < i; j++) { System.out.print("*"); } System.out.println(); } } }5.whlie循环
package com.itheima.loop; public class WhileDemo { public static void main(String[] args) { int i = 1; while (i <= 5) { System.out.println("HelloWorld"); i++; } } }5.1死循环
whlie(true){ System.out.println("HelloWorld") }do whlie循环
int = 0; do{ System.out.println("HelloWorld"); i++ }whlie(i < 3)特点:先执行后判断
6.三种循环的区别
for循环和whlie循环先判断后执行
do whlie循环先执行后判断
7.break和continue
1.break:终止循环内容的执行,结束当前循环
2.continue:跳过某次循环体内容的执行,继续下一次执行
8.Random生成随机数
格式:
Random r = new Random
r. nextInt(n);指的是0 ~ n 但不包含n
案例生成随机数字游戏
package com.itheima.test; import java.util.Random; import java.util.Scanner; public class RandomTest { public static void main(String[] args) { guessNumber(); } public static void guessNumber() { Random r = new Random(); Scanner sc = new Scanner(System.in); int randomNumber = r.nextInt(100) + 1; while (true) { System.out.println("请输入: "); int inputNumber = sc.nextInt(); // 5. 比大小, 给出提示 if (inputNumber > randomNumber) { System.out.println("猜大了!"); } else if (inputNumber < randomNumber) { System.out.println("猜小了!"); } else { System.out.println("恭喜, 猜中了!"); break; } } } }
数组
数组指一种容器,可以存储同种类型的多个值
1.数组的定义格式和静态初始化
数据类型 [] 数值名
int [] arr
静态初始化:
初始化:就是在内存中,为数组容器开辟空间,并将数据存入容器中的过程。
格式:
数据类型[] 数值名 = {元素1,元素2,元素3.....};
int [] arr = {11, 22, 33, 44, 55};
1.1数值遍历操作
数组遍历:依次访问数组中的每一个元素
public static void main (String [] args){
for(int i = 0; i < arr.lenght; i++){
}
}
1.2案例求偶数和
package com.itheima.test;
public class ArrayTest1 {
public static void main(String[] args) {
int[] arr1 = {-11, -22, -33, -44, -55};
int[] arr2 = {66, 77, 88, 99, 100};
int sum = getSum(arr2);
System.out.println("偶数和为:" + sum);
}
public static int getSum(int[] arr) {
int sum = 0;
for (int i = 0; i < arr.length; i++) {
// arr[i] : 每一个元素
// i : 代表索引
if (arr[i] % 2 == 0) {
sum += arr[i];
}
}
return sum;
}
}
1.3案例求最大值
package com.itheima.test;
public class ArrayTest1 {
public static void main(String[] args) {
int[] arr1 = {5, 44, 33, 55, 22};
int max = getMax(arr1);
System.out.println("最大值为:" + max);
}
public static int getMax(int[] arr) {
// 1. 假设数组中第一个元素为最大值
int max = arr[0];
// 2. 遍历数组, 取出剩余的每一个元素
for (int i = 1; i < arr.length; i++) {
if (arr[i] > max) {
// 4. 找到更大的元素, 改变max变量的值
max = arr[i];
}
}
return max;
}
}
1.4案例数值反转操作 ***
需求:
已知一个数组 arr = {11, 22, 33, 44, 55}; 用程序实现把数组中的元素值交换,
交换后的数组 arr = {55, 44, 33, 22, 11}; 并在控制台输出交换后的数组元素。
package com.itheima.test;
public class ArrayTest1 {
public static void main(String[] args) {
int[] arr1 = {11, 22, 33, 44, 55};
reverseArray(arr1);
for (int i = 0; i < arr1.length; i++) {
System.out.println(arr1[i]);
}
}
public static void swap() {
int[] arr = {11, 22, 33, 44, 55};
// 第一个元素 arr[0]
// 最后一个元素 arr[arr.length-1]
int temp = arr[0];
arr[0] = arr[arr.length - 1];
arr[arr.length - 1] = temp;
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
//需求: 对数组中的元素反转
public static void reverseArray(int[] arr) {
for (int start = 0, end = arr.length - 1; start < end; start++, end--) {
int temp = arr[start];
arr[start] = arr[end];
arr[end] = temp;
}
}
}