1:流程控制语句总结框架
2.for和while区别:
-
for循环中,控制循环的变量,因为归属for循环的语法结构中,在for循环结束后,就不能再次被访问到;
-
for循环使用:知道循环次数或者循环范围;
-
while循环中,控制循环变量,对于while循环来说不归属于其语法结构,在while循环结束后,该变量还可以使用;
-
while循环使用:不知道循环次数和范围,只知道循环结束的条件;
3.随机数Random:
(1)导包:import java.util.Random;
(2)创建对象:Random random = new Random();
(3)接收对象:int x=random.nextInt(随机数范围);
import java.util.Random;
public class HelloWorld {
public static void main(String[] args) {
Random random = new Random();
// 小括号中书写生成随机数的范围,这个范围从0开始,到这个数-1结束
// 包头不包尾,包左不包右
int x=random.nextInt(10);
System.out.println(x);
}
}
(4)任意到任意的随机数:
import java.util.Random;
public class HelloWorld {
public static void main(String[] args) {
Random random = new Random();
// 需求:生成1~100随机数
/*用来生成任意数到任意数的随机数 7~15
让这个范围头尾都减去一个值,让这个范围从0开始 -7 0~8
尾巴+1 8+1=9
最终结果,再加上第一步减去的值
*/
int x=random.nextInt(9)+7;
System.out.println(x);
}
}
4.练习题:
(1)打印折纸次数:
public class HelloWorld {
public static void main(String[] args) {
/*需求:世界上最高峰珠穆朗玛峰(8844.43米=8844430毫米)
假如我有一张足够的大的纸,它的厚度是0.1毫米。请问:我折叠多少次,可以折成珠穆朗玛峰的高度?
*/
//分析:折叠每一次纸张厚度是原先的两倍
double height=8844430;
double paper=0.1;
int count=0;
while (paper<height){
paper=paper*2;
count++;
}
System.out.println(count);
}
}
(2)两道力扣算法题:
-
回文数:
需求:给你一个整数x,若x是一个回文数,打印true;反之,返回false;
回文数例:12321;343
import java.util.Scanner;
public class HelloWorld {
public static void main(String[] args) {
/*需求:给你一个整数x,若x是一个回文数,打印true;反之,返回false; */
//核心思路:把数字倒过来跟原来的数字进行比较
int x=1232;
// 定义一个临时变量用于记录x原来的值,用于最后进行比较
int temp=x;
// 记录倒过来之后的结果
int num=0;
while (x!=0){
int g=x%10;
// 修改一下x记录的值
x=x/10;
// 把当前获取到的数据拼接到最右边
num=num*10+g;
}
System.out.println(num);
System.out.println(x);
System.out.println(num==temp);
}
}
-
求商和余数:
需求:给定两个整数,被除数和除数(都是正数,且不超过int范围)。
将两数相除,要求不使用乘法、除法和%运算符。
得到商和余数。
public static void main(String[] args) {
/*需求:给定两个整数,被除数和除数(都是正数,且不超过int范围)。将两数相除,要求不使用乘法、除法和%运算符。得到商和余数 */
// 分析:被除数/除数=商……余数
int a=94;
int b=10;
int num=0;
while (a>b){
a=a-b;
num++;
}
System.out.println(num);
System.out.println(a);
}
-
逢7过:
游戏规则:从任意一个数字开始报数,当你要报的数字包含7或者是7的倍数说:过
需求:使用程序在控制台答应出1——100之间满足逢7过的规则。
public static void main(String[] args) {
/*游戏规则:从任意一个数字开始报数,当你要报的数字包含7或者是7的倍数说:过
需求:使用程序在控制台答应出1——100之间满足逢7过的规则。 */
// 分析:i%7==0||i%10==7 过
for (int i = 1; i <= 100; i++) {
if(i%7==0||i%10==7||i/10%10==7){
System.out.println("过");
continue;
}
System.out.println(i);
}
}
-
求平方根
需求:键盘录入一个大于等于2的整数x,计算并返回x的平方根。
结果只保留整数部分,小数部分将被舍去。
public static void main(String[] args) {
/*需求:键盘录入一个大于等于2的整数x,计算并返回x的平方根。结果只保留整数部分,小数部分将被舍去。 */
// 分析:16平方根4
// 10:1*1=1<10;2*2<10;3*3=9<10;4*4-16<10
// 10的平方根在3~4之间
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个大于等于2的整数:");
int x=sc.nextInt();
for (int i = 1; i <=x; i++) {
if(i*i==x){
System.out.println(i+"就是"+x+"的平方根");
break;
}else if (i*i>x){
System.out.println((i-1)+"就是"+x+"的平方根");
break;
}
}
}
-
求质数:
需求:键盘录入一个正整数x,判断该整数是否是一个质数;
public static void main(String[] args) {
/*需求:需求:键盘录入一个正整数x,判断该整数是否是一个质数; */
// 质数:如果一个整数只能被1和本身整除,那么这个数就是质数;否则是合数
// 7=1*7
// 8=1*8; 8=2*4
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个数:");
int x=sc.nextInt();
// 最初就假定x是质数
boolean flag=true;
//从2开始判断,一直判断到x-1为止,看这个范围内是否有数字可以被i整除
for (int i = 2; i <x; i++) {
if(x%i==0){
flag=false;
break;
}
}
if(flag){
System.out.println(x+"是质数");
}else {
System.out.println(x+"不是质数");
}
}
-
猜数字小游戏:
import java.util.Random;
import java.util.Scanner;
public class HelloWorld {
public static void main(String[] args) {
// 猜1~100的数字
Random random = new Random();
int x=random.nextInt(100)+1;
while (true) {
// 猜数字:
Scanner sc = new Scanner(System.in);
System.out.println("请输入您猜的数字:");
int i=sc.nextInt();
if (i > x) {
System.out.println("您猜的数大了!");
} else if (i < x) {
System.out.println("您猜的数小了!");
} else {
System.out.println("恭喜您猜对了!");
break;
}
}
}
}