if else嵌套
if 嵌套
/*
针对语句格式2
if(表达式){
语句1;
}else{
语句2;
}
if语句格式2的一种嵌套格式
if(表达式1){
if(表达式2){
语句1;
}else{
语句2;
}
}else{
if(表达式3){
语句3;
}else{
语句4;
}
}
键盘录入三个数据,获取三个数据中的最大值
*/
importjava.util.Scanner ;
classIfDemo{
publicstaticvoidmain(String[] artgs){
//创建键盘录入数据
Scannersc=newScanner(System.in) ;
//提示并录入数据
System.out.println("请您输入第一个数据:") ;
inta=sc.nextInt() ;
System.out.println("请您输入第二个数据:") ;
intb=sc.nextInt() ;
System.out.println("请您输入第三个数据:") ;
intc=sc.nextInt() ;
//三元运算符
//中间变量
inttemp= (a>b)?a:b ;
//定义结果变量接收数据
intmax= (temp>c)?temp:c ;
System.out.println("三个数据最大值是:"+max) ;
System.out.println("------------------------------") ;
//if...else...嵌套
//定义一个结果变量max2
intmax2 ;
if(a>b){
//a比b大
//嵌套if...else...
if(a>c){
//同时a比c大
max2=a ;
}else{
//c大
max2=c ;
}
}else{
//a比b小
//b和在c进行比较
if(b>c){
max2=b;
}else{
max2=c ;
}
}
//输出结果
System.out.println("三个数据最大值是:"+max2) ;
}
}
if和三元符的区别
/*
面试题
if...else...格式和三元运算符的区别?
三元运算符只是一个运算符号,不是流程控制语句,在三元中不能输出打印值,
可以操作具体的数据值(结果最终是数据值);
而if...else...流程控制语句,范围远远大于三元运算符
既可以使用具体数据值,也可以是打印内容;
三元运算符能够使用的一定能够if...else...
if...else...能够实现的,不一定能够使用三元!
键盘录入一个数据(int类型),判断数据是否是偶数!
*/
//导包
importjava.util.Scanner ;
classIfDemo2{
publicstaticvoidmain(String[] args){
//创建键盘录入对象
Scannersc =newScanner(System.in) ;
//提示并录入数据
System.out.println("请您输入一个数据:") ;
intnumber=sc.nextInt() ;
//if...else...实现
if(number%2==0){
System.out.println("是偶数") ;
}else{
System.out.println("不是偶数") ;
}
System.out.println("---------------------------") ;
//System.out.println(
//(number%2==0)?(System.out.println("是偶数")):(System.out.println("不是偶数"))
// );
//boolean s = (number%2==0)?(true):(false);
//System.out.println(s) ;
Strings = (number%2==0)?("是偶数"):("不是偶数") ;
System.out.println(s) ;
}
}
if else的第三种格式
/*
if格式3:
if(表达式1){
语句1;
}else if(表达式2){
语句2;
...
}else{
语句n;
}
流程:
)先判断表达式1是否成立,成立,则执行语句1
2)不成立,则判断表达式2是否成立,成立,执行语句2;
否则依次...进行判断
...
3)如果上面都不成立,则执行else语句,最终结束;
场景:针对多种进行判断!
需求:
键盘录入学生成绩(0-100),判断
90-100 "优秀"
80-90 "较好"
70-80 "良好"
60-70 "及格"
60以下 "不及格"
*/
//导包
importjava.util.Scanner ;
classIfDemo3{
publicstaticvoidmain(String[] args){
//创建键盘录入数据对象
Scannersc=newScanner(System.in) ;
//提示并录入数据
System.out.println("请输入学生成绩:") ;
intsocer=sc.nextInt() ;
//if格式3实现
/*
if(socer >= 90 && socer<=100){
System.out.println("该学生成绩优秀!") ;
}else if(socer>=80 && socer<90){
System.out.println("该学生成绩较好!") ;
}else if(socer>=70 && socer<80){
System.out.println("该学生成绩良好!") ;
}else if(socer>=60 && socer<70){
System.out.println("该学生成绩及格!") ;
}else{
System.out.println("不及格!") ;
}
*/
/*
测试数据的时候-----> 测试人员:编写测试用例!
1)测试边界数据
2)测试边界以内的数据
3)测试错误数据
*/
//优化
if(socer<0||socer>100){
System.out.println("录入的成绩是非法数据!") ;
}elseif(socer>=90&&socer<=100){
System.out.println("优秀!") ;
}elseif(socer>=80&&socer<90){
System.out.println("较好!") ;
}elseif(socer>=70&&socer<80){
System.out.println("良好!") ;
}elseif(socer>=60&&socer<70){
System.out.println("刚及格!") ;
}else{
System.out.println("不及格!") ;
}
}
}
/*
if格式3:
if(表达式1){
语句1;
}else if(表达式2){
语句2;
...
}else{
语句n;
}
流程:
)先判断表达式1是否成立,成立,则执行语句1
2)不成立,则判断表达式2是否成立,成立,执行语句2;
否则依次...进行判断
...
3)如果上面都不成立,则执行else语句,最终结束;
场景:针对多种进行判断!
需求:
键盘录入学生成绩(0-100),判断
90-100 "优秀"
80-90 "较好"
70-80 "良好"
60-70 "及格"
60以下 "不及格"
*/
//导包
importjava.util.Scanner ;
classIfDemo3{
publicstaticvoidmain(String[] args){
//创建键盘录入数据对象
Scannersc=newScanner(System.in) ;
//提示并录入数据
System.out.println("请输入学生成绩:") ;
intsocer=sc.nextInt() ;
//if格式3实现
/*
if(socer >= 90 && socer<=100){
System.out.println("该学生成绩优秀!") ;
}else if(socer>=80 && socer<90){
System.out.println("该学生成绩较好!") ;
}else if(socer>=70 && socer<80){
System.out.println("该学生成绩良好!") ;
}else if(socer>=60 && socer<70){
System.out.println("该学生成绩及格!") ;
}else{
System.out.println("不及格!") ;
}
*/
/*
测试数据的时候-----> 测试人员:编写测试用例!
1)测试边界数据
2)测试边界以内的数据
3)测试错误数据
*/
//优化
if(socer<0||socer>100){
System.out.println("录入的成绩是非法数据!") ;
}elseif(socer>=90&&socer<=100){
System.out.println("优秀!") ;
}elseif(socer>=80&&socer<90){
System.out.println("较好!") ;
}elseif(socer>=70&&socer<80){
System.out.println("良好!") ;
}elseif(socer>=60&&socer<70){
System.out.println("刚及格!") ;
}else{
System.out.println("不及格!") ;
}
}
}
switch
switch语句的格式
/*
switch语句格式
switch(表达式){
case 值1:
语句1;
break ;
case 值2:
语句2;
break ;
...
...
default:
语句n;
break ;
}
执行流程:
1)表达式中的值先和case值1比较,如果匹配,执行语句1,语句break,语句结束;
2)case值1不匹配,继续和case值2进行比较,如果一致,执行语句2,swich结束;
...
...
3)如果上面的case的值和表达式中的结果值都不匹配,执行default语句,
执行语句n,switch语句结束;
需求:
键盘录入一个int类型的数据,使用switch选择判断,对应的星期
1 星期一
2 星期二
3 星期三
4 星期四
5 星期五
6 星期六
7 星期日
*/
//导包
importjava.util.Scanner ;
classSwitchDemo{
publicstaticvoidmain(String[] args){
//创建键盘录入数据对象
Scannersc=newScanner(System.in) ;
intnumber=3 ;
//提示并录入数据
System.out.println("请您录入一个星期值:") ;
intweek=sc.nextInt();
switch(week){
case1:
System.out.println("星期一") ;
break ;
case2:
System.out.println("星期二") ;
break ;
case3:
System.out.println("星期三") ;
break ;
case4:
System.out.println("星期四") ;
break ;
case5:
System.out.println("星期五") ;
break ;
case6:
System.out.println("星期六") ;
break ;
case7:
System.out.println("星期日") ;
break ;
default:
System.out.println("您输入的数据非法!") ;
}
}
}
switch面试题
//看程序,写结果
classSwitchTest{
publicstaticvoidmain(String[] args){
inta=3 ,b=4 ;
switch(a){
default :
b++ ;//5
case4:
b++ ; //6
case5:
b++ ;//7
}
//b结果?
System.out.println("b:"+b) ;
System.out.println("-----------------------------");
intx=3 ,y=4 ;
switch(x){
default :
y++ ;
case3:
y++ ; //5
case4:
y++ ; //6
}
System.out.println("y:"+y);
}
}
switch面试题
/*
需求:默认int (使用switch语句实现)
键盘录入月份的值,判断季节
3,4,5 春季
6,7,8 夏季
9,10,11 秋季
12,1,2 冬季
*/
//导包
importjava.util.Scanner ;
classSwitchTest2{
publicstaticvoidmain(String[] args){
//创建键盘录入对象
Scannersc=newScanner(System.in) ;
//提示并录入数据
System.out.println("请您输入月份的值:") ;
intmonth=sc.nextInt() ;
//使用switch语句实现
/*
switch(month){
case 1:
System.out.println("冬季") ;
break ;
case 2:
System.out.println("冬季") ;
break ;
case 3:
System.out.println("春季") ;
break ;
case 4:
System.out.println("春季") ;
break ;
case 5:
System.out.println("春季") ;
break ;
case 6:
System.out.println("夏季") ;
break ;
case 7:
System.out.println("夏季") ;
break ;
case 8:
System.out.println("夏季") ;
break ;
case 9:
System.out.println("秋季") ;
break ;
case 10:
System.out.println("秋季") ;
break ;
case 11:
System.out.println("秋季") ;
break ;
case 12:
System.out.println("冬季") ;
break ;
default:
System.out.println("对不起,地球没有该月份!") ;
break ;
}
*/
//利用case穿透,简化代码
switch(month){
case3:
case4:
case5:
System.out.println("春季") ;
break ;
case6:
case7:
case8:
System.out.println("夏季") ;
break ;
case9:
case10:
case11:
System.out.println("秋季") ;
break ;
case1:
case2:
case12:
System.out.println("冬季") ;
break ;
default:
System.out.println("对不起,非法数据!地球没有该月份") ;
break ;
}
}
}
switch模拟简单选择题
/*
需求:
使用switch语句模拟单项选择题
'A'
'B'
'C'
'D'
分析:
1)先去给出一道选择题 (输出语句输出信息)
2)键盘录入(创建键盘录入对象)
3)Java中Scanner键盘录入不能录入字符,
可以录入int类型,65---'A'
66---'B'
67---'C'
68---'D'
将int---强转char
switch(字符){
case 'A':
///
break;
case 'B':
}
*/
//导包
importjava.util.Scanner ;
classSwitchTest3{
publicstaticvoidmain(String[] args){
System.out.println("<<我们结婚吧>>里面杨桃谁扮演的?") ;
System.out.println("65 张佳宁") ;
System.out.println("66 高圆圆") ;
System.out.println("67 孙俪") ;
System.out.println("68 赵丽颖") ;
//创建键盘录入对象
Scannersc=newScanner(System.in) ;
//提示并录入数据
System.out.println("请您输入一个选项:") ;
intchoiceNumber=sc.nextInt() ; //65 int---->字符 'A'
//将choiceNumber强转为char字符类型
//目标类型 变量名 = (目标类型)(初始化值或者表达式) ;
charchoice= (char)choiceNumber ;
//使用switch语句接收
switch(choice){
case'A':
System.out.println("对不起,答案错误!") ;
break ;
case'B':
System.out.println("恭喜您,答案正确!") ;
break ;
case'C':
System.out.println("对不起,答案错误!") ;
break ;
case'D':
System.out.println("对不起,答案错误!") ;
break ;
default:
System.out.println("输入的选项有误,不存在") ;
break ;
}
}
}
/*
需求:
使用switch语句模拟单项选择题
"A"
"B"
"C"
"D"
分析:
1)先去给出一道选择题 (输出语句输出信息)
2)键盘录入(创建键盘录入对象)
3)Java中Scanner键盘录入不能录入字符,
Scanner sc = new Scanner(System.in) ;
可以直接录入String
String num = sc.nextLine() ;
switch(num){ //jdk7以后,switch后面跟String字符串
case "A":
}
*/
//导包
import java.util.Scanner ;
class SwitchTest4{
public static void main(String[] args){
System.out.println("<<我们结婚吧>>里面杨桃谁扮演的?") ;
System.out.println("A 张佳宁") ;
System.out.println("B 高圆圆") ;
System.out.println("C 孙俪") ;
System.out.println("D 赵丽颖") ;
//创建键盘录入对象
Scanner sc = new Scanner(System.in) ;
//提示并录入数据
System.out.println("请您输入一个选项:") ;
String number = sc.nextLine() ; //直接录入字符串
//使用switch语句接收
switch(number){
case "A":
System.out.println("对不起,答案错误!") ;
break ;
case "B":
System.out.println("恭喜您,答案正确!") ;
break ;
case "C":
System.out.println("对不起,答案错误!") ;
break ;
case "D":
System.out.println("对不起,答案错误!") ;
break ;
default:
System.out.println("输入的选项有误,不存在") ;
break ;
}
}
}
switch使用的注意事项
/*
switch语句使用的注意事项:
1)case语句里面是有break,
如果没有书写break,会造成"case传统"
2)case语句后面的值只能是常量值,不能是变量值
(Java是一个强类型语言:语法结构很严谨)
3)关于default语句
它可以在语句中的任何位置,不影响switch语句的执行流程!
但是如果在语句中,那么break不要省略!(考点)
如果default语句它在语句的末尾,break可以省略
4)switch语句的结束条件:
1)语句break结束
2)程序默认执行到末尾!(顺序结构语句都是依次由上而下,末尾结束!)
*/
//导包
import java.util.Scanner ;
class SwtichDemo2{
public static void main(String[] args){
//创建键盘录入数据对象
Scanner sc = new Scanner(System.in) ;
int b = 3 ;
//提示并录入数据
System.out.println("请您录入一个星期值:") ;
int week = sc.nextInt();
switch(week){
/*default:
System.out.println("您输入的数据非法!") ;
//break ;
*/
case 1:
System.out.println("星期一") ;
break ;
case 2:
System.out.println("星期二") ;
break ;
//case b:
case 3:
System.out.println("星期三") ;//星期三
break
case 4:
System.out.println("星期四") ;
break ;
case 5:
System.out.println("星期五") ;
break ;
case 6:
System.out.println("星期六") ;
break ;
case 7:
System.out.println("星期日") ;
break ;
default:
System.out.println("您输入的数据非法!") ;
//break ;//可以省略,但是不建议!
}
}
}
for循环
/*
需求:
在dos控制台输出打印5次"helloworld";
见到这种代码重复性很高(冗余度很大)
java提供循环结构语句之for循环
for(初始化语句;条件表达式;控制体语句或步长语句){
循环体语句;
}
执行流程:
1)先初始化语句进行赋值
2)判断条件表达式是否成立,如果成立,执行循环体语句
2.1)继续执行控制台语句或者步长语句 对初始化语句的变量进行自增或者自减
2.2)继续判断条件表达是否成立,如果成立,按照上面 这种方式执行;
2.3)如果变量自增或者自减到条件表达式不成立为止,循环语句结束!
*/
class ForDemo{
public static void main(String[] args){
//原始的做法
System.out.println("helloworld") ;
System.out.println("helloworld") ;
System.out.println("helloworld") ;
System.out.println("helloworld") ;
System.out.println("helloworld") ;
System.out.println("--------------------------") ;
//上面代码冗余度大,优化
/*
for(初始化语句;条件表达式;控制体语句或步长语句){
循环体语句;
}
*/
for(int x = 1; x<=5 ; x++){//x=1,1<=5-->x=2,x<=5,x=3,x<=5,x=4,x<=5,x<=5,x=6,x<=5
System.out.println("helloworld") ;//第一次打印/第二次/第三次//第四次//第五次
}
}
}
for循环举例
/*
需求(for循环)
1)求1-100之间的和
2)求1-100之间的偶数和
3)求5的阶乘!
求阶乘思想和求和思想一样的
n!=n*(n-1)!....
定义一个最终结果变量
int jc = 1 ;
for(int x = 1;x <=5 ; x++){
jc *=x ; //jc = jc *x ;
}
*/
class ForTest{
public static void main(String[] args){
//求5的阶乘
//定义一个最终结果变量
int jc = 1 ;
for(int x = 2; x<=5 ;x++){ //x=2,2<=5
jc*=x ;//jc = jc * x //jc= 1*2
}
System.out.println("5阶乘是:"+jc);
System.out.println("--------------------") ;
//1)求1-100之间的和
//定义结果变量
int sum = 0 ;
for(int x = 1 ;x <=100;x++){
sum +=x ;
}
System.out.println("1-100之间的和是:"+sum) ;
System.out.println("--------------------") ;
//2)求1-100之间的偶数和
//定义结果变量
int sum2 = 0 ;
for(int x = 1 ; x<=100;x++){
if(x%2==0){
//能够被2整除
sum2 +=x ;
}
}
System.out.println("1-100之间的偶数和是:"+sum2) ;
}
}
用for循环输出1-10的所有数据
/*
需求:
1)在dos控制台打印输出1-10的所有数据!
2)在dos控制台打印输出1-10的所有数据之和!(循环)
循环中的求和思想:
定义一个结果变量:int sum = 0 ;
规律:
0 + 1 = 1 ;
1 + 2 = 3 ;
3 + 3 = 6 ;
6 + 4 = 10
10 + 5 = 15
循环中的第一个加数:sum的值
循环中的变量:就是第二个加数 ...
*/
class ForTest2{
public static void main(String[] args){
//原始的做法:
System.out.println(1) ;
System.out.println(2) ;
System.out.println(3) ;
System.out.println(4) ;
System.out.println(5) ;
System.out.println(6) ;
System.out.println(7) ;
System.out.println(8) ;
System.out.println(9) ;
System.out.println(10) ;
System.out.println("----------------------------------------") ;
//循环改进
for(int x =1; x<=10 ;x++){//x=1,1<=10
System.out.println(x) ;//1
}
System.out.println("----------------------------------------") ;
//原始的做法
System.out.println(1+2+3+4+5+6+7+8+9+10) ;
System.out.println("----------------------------------------") ;
//for循环
//定义一个结果变量
int sum = 0 ; //sum=0
for(int x = 1 ; x <=10 ; x++){//x=1,1<=10,x=2,2<=10
//循环体
//sum = sum +x;
sum += x ; // sum = 0 + 1 =1 ; sum = 1 + 2 ;
}
System.out.println("1-10的数据之和是:"+sum) ;
}
}
水仙花数
/*
需求:
在dos控制台打印输出所有的水仙花数
什么是水仙花数:
水仙花数指的是三位数,而且这个三位数每个位上的数据的立方之和是它本身
153 = 1*1*1+5*5*5 +3*3+3
分析:
1)水仙花(三位数)---已经明确了范围,使用for循环x取值 100-999
2)循环里面获取这三位数的上每个位上的数据本身 (关键点)
举例:
153 % 10 = 3 个位 %(求余数)
153 / 10 % 10 = 5 十位 去掉低位,获取低位(获取十位)
153 /10 /10 % 10 = 1 百位
定义三个变量,分别代表个位,十位,百位
int ge = x % 10 ;
int shi = x /10 %10 ;
int bai = x /10/10 %10;
2.1)满足条件 if(x==(ge*ge*ge+shi*shi*shi+bai*bai* bai)){
//输出x
}
*/
class ForTest3{
public static void main(String[] args){
System.out.println("水仙花数是:") ;
//水仙花,三位数--for循环
for(int x = 100;x<=999; x++){
//定义三个变量:ge,shi,bai
int ge = x % 10 ; // 153 %10 =3
int shi = x /10%10 ; // 153 /10%10 = 5
int bai = x /10/10 %10 ; //153 /10/10%10 = 1
//如果当前x就是ge*ge*ge+shi*shi*shi+bai*bai*bai,输出x
if(x==(ge*ge*ge+shi*shi*shi+bai*bai*bai)){
System.out.println(x) ;
}
}
}
}
/*
水仙花数是:
153
370
371
407
*/
统计水仙花的个数
/*
需求:
统计水仙花数有多少个?
循环中的统计思想:
1)定义统计变量 int count = 0 ;
2)水仙花数---明确范围 for循环 x 的取值100-999
2.1)定义三个变量,int ge = x % 10 ;
int shi = x/10 % 10 ;
int bai = x/10/10%10;
2.2)如果满足条件x==(ge*ge*ge+shi*shi*shi+bai*bai* bai)
2.3)统计变量++即可
3)输出统计变量即可!
*/
class ForTest4{
public static void main(String[] args){
//1)定义统计变量
int count = 0 ;
//2)水仙花:三位数
for(int x = 100; x<=999; x++){
//个位,百位,十位三个变量
//获取x这个数据每个位上的数据本身
int ge = x % 10;
int shi = x /10%10;
int bai = x /10/10 %10;
//2.1)如果满足条件x==(ge*ge*ge+shi*shi*shi+bai*bai* bai)
if(x==(ge*ge*ge+shi*shi*shi+bai*bai*bai)){
//2.2)统计变量++
count ++ ;
System.out.println("第"+count+"次的水仙花数是:"s+x) ;
}
}
System.out.println("水仙花数共有:"+count+"个");
}
}
while循环
while循环的概念
/*
while循环
格式:
基本格式:
while(条件表达式){
循环体语句;
控制体语句或者步长语句;
}
扩展格式:(使用多)
初始化语句:
while(条件表达式){
循环体语句;
控制体语句或者步长语句;
}
执行流程:
1)初始化语句进行变量赋值
2)判断条件表达式是否成立,
成立,执行循环体语句,依次执行控制体语句(对变量控制)
继续回到2)进行判断
...
...
3)条件表达式不满足,循环结束!
需求:在dos控制体输出打印 5次"helloworld"
需求2:
使用while循环
1)求1-100的偶数和
2)打印所有的水仙花数
3)统计水仙花数的个数
*/
class WhileDemo{
public static void main(String[] args){
/*
初始化语句:
while(条件表达式){
循环体语句;
控制体语句或者步长语句; (必须存在,否则造成"死循环")
}
*/
int x = 1 ;
while(x <= 5){
System.out.println("helloworld") ;
x++ ;//控制体语句
}
}
}
while和for的区别
/*
面试题
while和for的区别?
共同点:
都是使用循环思想解决一些问题
不同点:
1)格式本身不同
for(初始化语句;条件表达式;控制体语句){
循环体语句;
}
初始化语句;
while(条件表达式){
循环体语句;
控制体语句;
}
2)是否明确循环次数
for循环:明确循环次数优先for循环,(for还是很频繁使用的)
while循环:不明确循环次数,使用while循环
3)从内存角度考虑销毁不同:
for循环结束,里面的变量及时释放了,所以不能在访问for中的变量
whlile循环结束,依然可以访问里面变量,
所以消耗资源相对for循环大一些!
*/
class WhileDemo2{
public static void main(String[] args){
//需求:在dos控制台打印输出 5次"我爱高圆圆"
//for实现
/*
for(int x = 1 ; x <=5 ;x++){
System.out.println("我爱高圆圆") ;
}
*/
//System.out.println(x) ;
//while实现
int x = 1 ;
while(x<=5){
System.out.println("我爱高圆圆") ;
x++ ;
}
System.out.println(x) ;
}
}
常见的死循环的格式
/*
常见的两种死循环格式
for(;;){ //jdk源码中比较多
循环体...
}
while(true){ //推荐
循环体...
}
利用死循环解决一些问题!
死循环:肯定需要利用一些条件,当达到某种条件的时候,结束循环(break;中断,结束!)
*/
class WhileDemo3{
public static void main(String[] args){
/*
for(;;){
//逻辑:达到一种条件,break
System.out.println("今天很开心,学习了死循环!") ;
}
*/
//第二种格式
while(true){
//逻辑:达到一种条件,break
System.out.println("今天很开心,学习了死循环!") ;
}
}
}
while练习题
class WhileTest{
public static void main(String[] args){
//1-100偶数和
int x = 1 ;
//结果变量
int sum = 0 ;
while(x<=100){
if(x%2==0){
sum +=x ;
}
x++ ;
}
System.out.println("1-100偶数和是:"+sum) ;
System.out.println("----------------------------") ;
//打印所有水仙花数
//统计水仙花多少个
//统计变量
int count = 0 ;
int i = 100;
while(i<=999){
//定义三个变量
int ge = i % 10 ;
int shi = i /10 % 10 ;
int bai = i /10/10 % 10;
if(i ==(ge*ge*ge+shi*shi*shi+bai*bai* bai)){
count ++ ;
System.out.println("第"+count+"次的水仙花是:"+i) ;
}
i ++ ;
}
System.out.println("共有"+count+"个") ;
}
}
猜数字游戏
/*
需求:
键盘录入int类型的数据,猜数字游戏(1-100之间的数据!)
jdk提供了一个类java.lang.Math(不需要导包):数学运算的工具
random()这个函数可以获取[0.0,1.0)的随机数 (常用类讲)
分析:
1)产生一个1-100之间的随机数(利用jdk提供Math完成)--number
while(true){
2)不断的创建键盘录入对象,录入int类型的数据--guessNumber
3)判断
如果guessNumber > number ,提示数据大了
否则如果guessNumber < number ,提示数据小了
最终,一致! 结束循环,break(中断,结束);
}
*/
//导包
import java.util.Scanner ;
class WhileTest2{
public static void main(String[] args){
//先去使用Math类产生随机数--public static double random()
/*
for(int x = 1 ; x <=10 ;x++){
//0.0-1.0的随机数:取不到1.0
//double number = Math.random() ;
//1-100的随机数 int
int number = (int)(Math.random()*100+1);
System.out.println(number) ;
}
*/
//1)产生一个1-100之间的随机数(利用jdk提供Math完成)--number
int number = (int)(Math.random()*100+1) ;
System.out.println("猜数字游戏开始了...") ;
//定义一个统计变量
int count = 0 ;
while(true){
//统计变量++
count ++ ;
//2)创建键盘录入对象
Scanner sc = new Scanner(System.in ) ;
//3)提示并录入数据
System.out.println("请您输入要猜的数据:") ;
int guessNumber = sc.nextInt() ;
if(guessNumber<1 || guessNumber>100){
System.out.println("您输入的数据不合法!") ;
}else if(guessNumber > number){
System.out.println("您要猜的数据"+guessNumber+"大了") ;
}else if(guessNumber < number){
System.out.println("您要猜的数据:"+guessNumber+"小了") ;
}else{
System.out.println("恭喜您,第"+count+"次,猜对了!") ;
break ;//满足条件,结束死循环
}
}
}
}