目录
无限循环
循环一直停不下来;//故无限循环的下面不能再写其他的代码。
跳转控制语句
练习1
题目1:小老虎吃5个包子,第三个包子有虫子,跳过。
public static void main(String[] args) { for (int i = 1; i <= 5; i++) { if(i==3){ //结束本次循环,执行下次循环 continue; } System.out.println("小老虎在吃第"+i+"个包子"); } }
题目2:小老虎吃5个包子,第三个包子吃饱了,后面的都不会再吃了。
public static void main(String[] args) { for (int i = 1; i <= 5; i++) { System.out.println("小老虎在吃第"+i+"个包子"); if(i==3){ //结束整个循环 break; } } }
总结:continue:跳出本次循环,继续执行下次循环
break:跳出整个循环
练习2:
题目1:使用程序在控制台打印出1-100之间的满足逢7必过规则的数据。
public class test01 { public static void main(String[] args) { //使用程序在控制台打印出1-100之间的满足逢7必过规则的数据。 for (int i = 1; i <= 100; i++) { if(i%10==7 || i/10%10==7 || i%7==0){ continue; } System.out.println(i); } } }
题目2:求平方根
键盘录入一个大于等于2的整数x,计算并且返回x的平方根。结果只保留整数部分,小数部分将舍去。
public static void main(String[] args) { //键盘录入一个大于等于2的整数x,计算并且返回x的平方根。结果只保留整数部分,小数部分将舍去。 Scanner sc = new Scanner(System.in); System.out.println("请输入一个大于等于2的整数:"); int number = sc.nextInt(); int temp; for (int i = 1; i < number; i++) { temp = i*i; if(temp == number){ System.out.println("该整数的平方根为:"+ i); break; } if(temp>number){ int i1=i-1; System.out.println("该整数的平方根的整数部分为:"+ i1); break; } } }
题目3:求质数,键盘录入,若是质数则返回true,反之,返回false
public class test01 { public static void main(String[] args) { //求质数,键盘录入,若是质数则返回true,反之,返回false Scanner sc = new Scanner(System.in); System.out.println("请输入一个整数:"); int number = sc.nextInt(); //定义一个标志,最开始就认定number是一个质数 boolean flag = true; for (int i = 2; i < number; i++) { if(number%i==0){ flag = false; break; } } if(flag){ System.out.println("是一个质数"); } else{ System.out.println("不是一个质数"); } } }
生成随机数字
题目4:程序自动生成一个1-100之间的随机数字,使用程序实现猜出这个数字是多少?
获取随机数字:Random类
①导包
import java.util.Random;
②创建对象
Random r = new Random();
③生成随机数
int number = r.nextInt(随机数范围);
public static void main(String[] args) { //程序自动生成一个1-100之间的随机数字,使用程序实现猜出这个数字是多少? Random r = new Random(); //在小括号中表示的是生成随机数的范围,从0开始到这个数-1结束[ ) // r.nextInt(100);//0~99 int number = r.nextInt(100)+1; Scanner sc = new Scanner(System.in); while(true){ System.out.println("请输入你猜测的数字"); int gessNumber = sc.nextInt(); if(gessNumber > number){ System.out.println("大了"); }else if(gessNumber < number){ System.out.println("小了"); }else{ System.out.println("猜中了!"); break; } } }
数组
存储同种数据类型的多个值,需要结合隐式转换
定义:
①数据类型[] 数组名 int [] array
②数据类型 数组名[] int array[]
初始化:
静态初始化
格式:数据类型[] 数组名 = new 数据类型[] {元素1,元素2,元素3……};
例:int[] array = new int[]{11,22,33};
简化格式:数据类型[] 数组名 = {元素1,元素2,元素3……};
例:int[] array = {11,22,33};
动态初始化
初始化时只指定数组长度,由系统为数组分配初始值
格式:数据类型[] 数组名 = new 数据类型[数组长度];
例:int[] arr = new int[3];//定义一个长度为3的数组;
地址值:
数组的地址值表示数组在内存中的位置
①[ :表示当前的是一个数组
②I :表示当前数组的元素是int类型;D:(double类型)
③@:表示一个间隔符号
④4eec7777:数组真正的地址值,(十六进制)
数组元素访问:
格式:数组名[索引];
索引:也叫做下标,角标。特点是从0开始,逐个+1,连续不断
数组的遍历:
将数组中所有的内容取出来,取出来之后可以(打印、求和、判断……)
ps:遍历指的是取出数据的过程,不要局限的理解为,遍历就是打印。
练习
题目1:遍历数组并求和,数组里面存储1,2,3,4,5.
public class test01 { public static void main(String[] args) { //遍历数组并求和,数组里面存储1,2,3,4,5. int[] arr = {1,2,3,4,5}; int sum=0; for (int i = 0; i < arr.length; i++) { sum=sum+arr[i]; } System.out.println("和为:"+sum); } }
题目2:统计个数,定义数组存储1-10;遍历数组统计一共有多少个能被3整除的数字;
public class test01 { public static void main(String[] args) { //统计个数,定义数组存储1-10;遍历数组统计一共有多少个能被3整除的数字 int[] arr = {1,2,3,4,5,6,7,8,9,10}; int count = 0; for (int i = 0; i < arr.length; i++) { if(arr[i] % 3 == 0){ count++; } } System.out.println("有"+count+"个能被3整除的数字"); } }
题目3:变化数据,定义数组存储1-10,遍历数组:①如果是奇数,则将当前数字扩大两倍;②如果是偶数,则将当前数字变成二分之一;
public class test01 { public static void main(String[] args) { //定义数组存储1-10,遍历数组:①如果是奇数,则将当前数字扩大两倍;②如果是偶数,则将当前数字变成二分之一; int[] arr = {1,2,3,4,5,6,7,8,9,10}; for (int i = 0; i < arr.length; i++) { if(arr[i] % 2 == 0){ arr[i] = arr[i] / 2; } else{ arr[i] = arr[i] * 2; } } for (int i = 0; i < arr.length; i++) { System.out.println(arr[i]); } } }
题目4:求最大值,数组元素{33,5,22,44,55}
public static void main(String[] args) { //求最大值,数组元素{33,5,22,44,55} int[] arr = {33,5,22,44,55}; int max = arr[0];//max初始化的值要是数组中的值; for (int i = 1; i < arr.length; i++) { if(arr[i] > max){ max = arr[i]; } } System.out.println("最大值为:"+max); }
题目5:生成10个1-100之间的随机数存入数组。①求出所有数据的和;②求所有数据的平均数;③统计有多少个数据比平均值小。
public static void main(String[] args) { //生成10个1-100之间的随机数存入数组。①求出所有数据的和;②求所有数据的平均数;③统计有多少个数据比平均值小。 Random r = new Random(); int[] arr = new int[10]; int sum = 0; int count = 0; double average; for (int i = 0; i < 10; i++) { int number = r.nextInt(100)+1; arr[i] = number; } for (int i = 0; i < 10; i++) { sum = sum + arr[i]; } average = sum/10; System.out.println("所有数据的和为:"+ sum); System.out.println("平均数为:"+ average); for (int i = 0; i < 10; i++) { if(arr[i]<average){ count++; } } System.out.println("比平均数小的有:"+ count+"个"); }
题目6:交换数组中的数据。数组{1,2,3,4,5},交换后:5,2,3,4,1
重点:定义一个临时变量
public static void main(String[] args) { //交换数组中的数据。数组{1,2,3,4,5},交换后:5,2,3,4,1 int[] arr = {1,2,3,4,5}; int temp = arr[0]; arr[0] = arr[4]; arr[4] = temp; }
交换后是5,4,3,2,1
重点:设计两个指针,一头一尾
public static void main(String[] args) { //交换数组中的数据。数组{1,2,3,4,5},交换后:5,4,3,2,1 int[] arr = {1,2,3,4,5}; for(int i=0,j=arr.length-1;i<j;i++,j--){ int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } for (int i = 0; i < arr.length; i++) { System.out.print(arr[i]+" "); } }
题目7:打乱数组中的数据,定义一个数组,存入1-5.打乱所有数据的顺序
重点:设置一个随机索引
public static void main(String[] args) { //打乱数组中的数据,定义一个数组,存入1-5.打乱所有数据的顺序 int[] arr = {1,2,3,4,5}; Random r = new Random(); for(int i=0;i<arr.length;i++){ int j = r.nextInt(5); int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } for (int i = 0; i < arr.length; i++) { System.out.print(arr[i]+" "); } }