循环结构
-
1.for循环:
A.在一些特定的情况下,需要重复执行一段代码时,需要使用到for循环。
1+2+3+4+5+.......+100
public class ForDemo {
public static void main(String[] args) {
int result = 0;
for(int i =1;i<=100;i++){
result+=i;
}
System.out.println("result="+result);
}
}
-
B.for循环的格式:
for(初始化表达式①;条件表达式②;修改表达式的值③){ 循环体④; }
执行顺序①②④③②④③
-
C.for循环的嵌套:
public class ForDemo01 { public static void main(String[] args) { // 倒三角形 for(int i=1;i<=5;i++){ for(int j=5;j>=i;j--){ System.out.print("*"); } System.out.println(); } // 正三角形 for(int i=1;i<=5;i++){ for(int j=1;j<=i;j++){ System.out.print("*"); } System.out.println(); } } }
-
D:break和continue的区别:
-
continue:用在循环结构中,用于结束当前本次循环,继续下一次循环。
-
break:用于跳出当前循环。
-
-
-
2.while循环
while(){ 循环体; }
-
猜数字
import java.util.Scanner; public class WhileDemo { @SuppressWarnings("resource") public static void main(String[] args) { int num =(int)(Math.random()*200); System.out.println("num="+num); Scanner sc =new Scanner(System.in); int guess =sc.nextInt(); while(guess!=num){ if(guess>num){ System.out.println("猜大了"); break; }else if(guess<num){ System.out.println("猜小了"); break; } System.out.println("再猜:"); guess =sc.nextInt(); } if(guess==num){ System.out.println("猜对了"); }else{ System.out.println("下次继续吧"); } } }
-
-
do-while循环
do{ 循环体; }while(布尔表达式);
-
猜数字
import java.util.Scanner; public class DoWhileDemo { public static void main(String[] args) { int num =(int)(Math.random()*200); System.out.println("num="+num); Scanner sc =new Scanner(System.in); int guess =sc.nextInt(); do{ if(guess>num){ System.out.println("猜大了"); }else if(guess<num){ System.out.println("猜小了"); } System.out.println("再猜:"); guess =sc.nextInt(); }while(guess!=num); if(guess==num){ System.out.println("猜对了"); }else{ System.out.println("下次继续吧"); } } }
-
数组:
-
1.概念:是一种引用数据类型,相同数据元素的集合。
-
2.定义:int[ ] arr = new int arr[ ];
-
3.初始化:
-
动态初始化:初始化的时候指定了数组的长度,初始化的值是由系统来分配决定的。
-
静态初始化:初始化的时候指定了元素的初始值,长度由系统决定的。
-
-
4.java内存分配
-
栈:存储的是局部变量,局部变量定义在方法中的变量,使用完毕后立即被销毁,进行回收。
-
堆:存储的是new出来的对象,每一个对象都是有地址的,每一个对象都有默认值;使用完毕后,会让垃圾回收器空闲的时候进行回收。
-
方法区:OOP
-
本地方法区:和系统有关系
-
寄存区:给cpu使用
利用数组计算身份证的最后一位:
/** * * 利用身份证号的前17位计算第十八位数字 */ import java.util.Scanner; public class CardDemo { public static void main(String[] args) { int[] card = new int[17]; int[] data = {7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2}; char code[] = {'1','0','x','9','8','7','6','5','4','3','2'}; Scanner sc =new Scanner(System.in); int sum=0; for(int i = 0;i<17;i++){ System.out.println("请依次输入前17位:"); card[i]=sc.nextInt(); } for(int i = 0;i<17;i++){ sum += card[i] * data[i]; } System.out.println("你的身份证最后一位是"+code[sum%11]); } }
-