前言
坚持就是胜利!!!!
一.循环
1.1无限循环和高级控制语句
无限循环
for(;;){
System.out.println("我爱学习");
}
while(true){
System.out.println("我爱学习");
}
do{
System.out.println("我爱学习");
}while(true);
跳转控制语句
1.题目一:小老虎吃包子
public class Solution { public static void main(String[] args) { for(int i=0;i<5;i++){ if(i==3){ continue; //结束本次循环,继续下次循环 } System.out.println("小老虎吃第"+i+"个包子"); } } }
输出结果:
讲解
continue结束本次循环,继续下次循环
2.题目:有5个包子,但是小老虎只吃两个
public class Solution { public static void main(String[] args) { for(int i=0;i<5;i++){ if(i==3){ break; //结束整个循环 } System.out.println("小老虎吃第"+i+"个包子"); } }
输出结果
讲解
break 是跳出整个循环
1.2练习
练习一:求平方根
键盘录入一个大于2的整数x,计算并返回x的平方根,结果只保留学整数部分,小数部分舍去
解题思路
代码实现
import java.util.Scanner; public class Solution { public static void main(String[] args) { //平方根 //eg:1.21 //1*1=1; 2*2=2;->若i*i>1.21,则返回i-1; //若i*i=1.21;则返回i; Scanner sc=new Scanner(System.in); int number=sc.nextInt(); for(int i=0;i<100;i++){ if(i*i>number){ System.out.println("他的平方根是"+(i-1)); break; } if(i*i==number){ System.out.println("他的平方根是"+i); break;//结束程序运行 } } }
输出结果
练习二:猜数字小游戏
系统自动生成1~100的随机数,设计程序推算出这个数是多少
思路:
使用Random来随机生成数
采用无限循环:while(true){
};来循环输入猜测
(1)若输入值比随机的生成值大,则输出大了
(2)若输入值比随机的生成值小,则输出小了
(3)若输入值与随机的生成相等,则输出猜对了,退出循环
论如何使用Random
如要求生成1~100的随机数:(等于(0~99)+1)
即int number=rand.nextInt(99)+1;
代码实现:
import java.util.Scanner; import java.util.Random; public class Solution { public static void main(String[] args) { Random rand=new Random(); //1.生成1~100的随机数 int number=rand.nextInt(99)+1; System.out.println("随机数是"+number); while (true) { //2.循环输入 Scanner sc=new Scanner(System.in); int num=sc.nextInt(); //3.判断数的大小 if(num>number){ System.out.println("该数大了"); } else if (num< number) { System.out.println("该的数小了"); }else { System.out.println("猜对了"); System.out.println("这个数是"+num); break; }} } }
输出结果
二.数组
数组要求必会操作:
练习一:求和
生成十个1~100的随机数存入数组,并求和
代码实现:
import java.util.Random; public class StringTomrs { public static void main(String[] args) { int sum=0; //定义一个数组 int[] arr=new int[10]; Random rand=new Random(); //1.每循环一次,就会生成一个新的随机数 for(int i=0;i<10;i++){ arr[i]=rand.nextInt(99)+1; } for (int i = 0; i < arr.length; i++) { System.out.println("输入的数为"+arr[i]); } //2.求和 for(int j=0;j<arr.length;j++){ sum+=arr[j]; } System.out.println("求和值为"+sum); } }
输出结果
练习二:交换数组
定义一个数组,将1,2,3,4,5存入数组中,并输出5,4,3,2,1
解题思路:
设置i和j,分别指向头和尾,交换头值与尾值,直到i=j结束。
代码实现
public class Solution { public static void main(String[] args) { int[] arr={1,2,3,4,5}; int temp=0; for(int i=0,j=arr.length-1;i<j;i++,j--){ temp=arr[i]; arr[i]=arr[j]; arr[j]=temp; } for(int i=0;i<arr.length;i++){ System.out.println(arr[i]+" "); } }}
解体思路二:
不设置j,j=arr.length-1,后继续使用上述思路
public class Solution { public static void main(String[] args) { int[] arr={1,2,3,4,5}; int temp=0; for(int i=0;i<(arr.length-1)/2;i++){ temp=arr[i]; arr[i]=arr[arr.length-i-1]; arr[arr.length-i-1]=temp; } for(int i=0;i<arr.length;i++){ System.out.println(arr[i]+" "); } } }
输出结果
练习三:打乱数组
定义一个数组,存入1~5,要求打乱数组中的所有内容
解体思路
每循环一次,随机生成一个索引
索引每次和数组元素呼唤,循环次数就是数组元素个数
注意,由于随机生成的是索引,即数组下标,所以在互换时使用arr[num];
代码实现
import java.util.Random; public class Solution { public static void main(String[] args) { int[] arr={1,2,3,4,5}; int temp=0; Random rand=new Random(); for(int i=0;i<arr.length;i++){ //每循环一次,随机生成一个索引 int num=rand.nextInt(arr.length); //索引每次和数组元素呼唤,循环次数就是数组元素个数 temp=arr[i]; arr[i]=arr[num]; arr[num]=temp; //注意,由于随机生成的是索引,即数组下标,所以在互换时使用arr[num]; } for(int i=0;i<arr.length;i++){ System.out.print(arr[i]+" "); } } }
输出结果
三.方法
设计一个方法用于数组的 遍历,输出结果在同一行
练习一
思路:1.我要干嘛: 遍历数组
2.我感到这件是需要什么才能完成? 数组
3.方法的调用是否需要继续使用结果: 不需要
public class Solution { public static void main(String[] args) { //定义数组 int[] arr={1,2,3,4,5}; //调用数组 PrintArr(arr); } public static void PrintArr(int[] arr){ for(int i=0;i<arr.length;i++){ System.out.print(arr[i]+","); //注意:println带换行功能;print不带换行功能 } } }
练习二:卖飞机票
巧用快捷键
Ctrl+Alt+m==抽取方法
public class Solution { public static void main(String[] args) { //1.定义 Scanner sc=new Scanner(System.in); int price=0; int price1=0;//折后价 price=sc.nextInt(); int month=0; month=sc.nextInt(); //2.是经济舱还是头等舱 System.out.println("请选择头等舱 0,经济舱 1"); int seat=sc.nextInt(); //3。判断是旺季还是淡季 if(5<=month &&month<=10) { System.out.println("是旺季"); //调用方法,算出折后价 price1 = getPrice1(seat, price1, price, 0.9, 0.85); } else{ System.out.println("是淡季"); //调用方法,算出折后价 price1 = getPrice1(seat, price1, price, 0.7, 0.65); } //5.计算票价 System.out.println("最后的票价是"+price1); } //思路:1我要干嘛 //2.我感到这件是需要什么才能完成? //3.方法的调用是否需要继续使用结果 //3=4。设置方法计算折后价 private static int getPrice1(int seat, int price1, int price, double x, double x1) { if(seat ==0){ price1 =(int)(price * x); }else{ price =(int)(price * x1); } return price1; } }
输出结果
练习三:开发验证码
思路:
代码实现
import java.util.Scanner; import java.util.Random; public class Solution { public static void main(String[] args) { //1.将大写字母与小写字母存放在一个数组中 char[] arr=new char[52]; // 存放小写字母 for(int i=0;i<26;i++){ arr[i]=(char)(i+79); } for(int i=26;i<arr.length;i++){ arr[i]=(char)(i+39);} //2.随机抽取四位字母 Random rand=new Random(); for(int i=0;i<4;i++){ int num=rand.nextInt(arr.length); String secreat=" "+arr[num]; System.out.print(secreat);} //3.随机生成一位数字 int num=rand.nextInt(10); //4。将生成的数字加入字符 String secreat=" "+num; System.out.println(secreat); }
输出结果:
到这里竹竹零就要和大家说再见了,希望时光不负赶路人,愿我们做最好的自己!!
如果您觉得有失偏颇请您在评论区指正,如果您觉得不错的话留个好评再走吧!!
您的鼓励就是对我最大的支持! ! !