java基础笔记 循环结构,数组总结

一.循环结构

1.1 for循环

A:在一些特殊的情况中,需要重复执行一段代码,需要使用到for循环

1+2+3+4+5+········+100
public static void main(String[] args) {
	int sum=0;
	for (int i = 0; i<=100; i++) {
		sum+=i;
	}
	System.out.println(sum);
}

B:for循环的格式

		1			2				3
for(初始化表达式;条件表达式;修改表达式的值){
    4
    循环体;
}

C:执行顺序:1243243

break与continue区别:

break:在switch中我们使用break用来改变程序执行顺序,可以跳出选择结构

	1.break如果要用在选择结构中,那么只能用在switch中

	2.break可以用在所有的循环结构中,用来跳出整个循环结构,而去执行循环之后的代码

	3.如果循环中嵌套if,则if中可以写break,如果循环中嵌套switch,那么switch中的break跳出的是选择结构,而不是循环结构

continue:

      1.只能用在循环结构中,不能用在选择结构
      2.在循环结构中,如果遇到continue,则跳出本次循环,而去执行下一次循环

return

1、return语句的作用:

	a、返回一个值,这个值可以是任意类型。
	b、使程序返回到操作系统(即终止程序) 

2、java中对于一个函数,不论有没有返回值类型,都可以带有return 语句。 但是区别在于,return 语句是否可以返回一个值(这取决与该函数的返回值类型)。

a、如果函数有返回值类型(即返回值类型不为void ),则必须带有返回相应类型值的return 语句。 

b、如果函数没有返回值(即返回值类型为void ),则函数中return 语句(如果存在return语句!)的后面不能加任何的变量。(该情况下的函数中也可以没有return 语句,但是如果有的话,return 只能作为返回操作系统的作用使用。)

例如:

1、有返回值

 public int getAge() {   
   return age;    //返回int 类型的变量age的值 
    } 

2、无返回值 函数不带return 语句

 public void putAge() {
      System.out.println(age); 
       } 

1.2 while循环

A: do…while :特点:先执行一次循环操作,然后再去判断循环条件,至少执行一次循环操作

do{
			//循环操作
		}while(循环条件);
	
	执行顺序:先执行循环操作,然后判断循环条件,如果满足,则再次执行循环操作,否则,跳出循环

B:while…do :特点:先判断条件,如果满足再去执行,有可能一次循环操作都不执行

			while(循环条件){
			//满足循环条件时执行的代码块
		}
	
	public class WhileDome {
		public static void main(String[] args) {
			int i = 0;
			while (i<10) {
				System.out.println("好好学习");
				++i;
		}
	}
		执行顺序:先判断循环条件,如果满足,则执行循环体(循环操作),然后再判断,满足继续执行循环体,
				  直到循环条件返回false,则跳出循环

例:猜数字:

A:藏数字: int num=121;

B:循环变量:

学生猜数字 guess;

C:猜大,------guess > num

猜小,------gues s< num

猜对,----------guess = num

import java.util.Scanner;

public class WhileDemo {
	public static void main(String[] args) {
		int num=121;
		int a;
		int x = 0;
		Scanner scanner=new Scanner(System.in);
		System.out.println("请输入要猜的数字:");
		a=scanner.nextInt();
		while (a!=num) {
			
			if (a>num) {
				System.out.println("猜大了,继续猜:");
				a=scanner.nextInt();
			}else if (a<num) {
				System.out.println("猜小了,继续猜:");
				a=scanner.nextInt();
			}else if (a==num) {
				break;
			}
			if (a==num) {
				System.out.println("擦对了,总共用了"+x+"次");
			}
			x++;
		}
	}

二、数组(Array)

1:概念
用来存储多个相同数据类型的一种数据结构
2.声明

1.数据类型[] 数组名; int[] arr;
2.数据类型 数组名[]; int arr[];

3.初始化
1.动态初始化:初始化的时候只指定了数组长度,初始值是由系统来分配决定
2.静态初始化:初始化的时候指定了元素初始值,长度是由系统决定的。

4.Java内存分配

计算机中为了提高程序的运行效率,将内存空间分为了以下5类:
1.栈:存放局部变量(在方法体中和方法的声明部分的变量)使用完毕之后,立刻被销毁,进行回收,执行效率优于堆。
2.堆:如果没有任何一个对象在引用堆内存中的地址,那么这块内存空间就是垃圾,java的垃圾回收机制-----系统空闲的时候。
3.方法区:
4.系统方法区:存放的是系统相关的内容,java语言无法操作
5.寄存器:执行效率最高

5.图解
java基础笔记 循环结构,数组总结

java基础笔记 循环结构,数组总结

java基础笔记 循环结构,数组总结

身份证第18位(校验码)的计算方法

1、将前面的身份证号码17位数分别乘以不同的系数。从第一位到第十七位的系数分别为:7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2。

2、将这17位数字和系数相乘的结果相加。

3、用加出来和除以11,看余数是多少?

4、余数只可能有0-1-2-3-4-5-6-7-8-9-10这11个数字。其分别对应的最后一位身份证的号码为1-0-X-9-8-7-6-5-4-3-2。

5、通过上面得知如果余数是2,就会在身份证的第18位数字上出现罗马数字的Ⅹ。如果余数是10,身份证的最后一位号码就是2。

import java.util.Scanner;

public class CardDemo {
	public static void main(String[] args) {
		//用来存储身份证的前17位数字
		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 scanner=new Scanner(System.in);
		int sum=0;
		for (int i = 0; i < 17; i++) {
			System.out.println("请输入前17位身份证号:");
			card [i]=scanner.nextInt();
			
		}
		for (int i = 0; i <17; i++) {
			sum+=card[i]*data[i];
			
		}
		System.out.println("你身份证号的最后一位是"+code[sum%11]);
	}