前言
坚持就是胜利!!!!
一.循环
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);
}
输出结果:
到这里竹竹零就要和大家说再见了,希望时光不负赶路人,愿我们做最好的自己!!
如果您觉得有失偏颇请您在评论区指正,如果您觉得不错的话留个好评再走吧!!
您的鼓励就是对我最大的支持! ! !