模块四重点:
1.会使用scanner和random
2.会使用switch以及知道case的穿透性
3.会使用if
4.会使用for循环,while循环,嵌套循环
第一章.scanner键盘录入:
1.概述:是java定义好的一个类
2.作用:将数据通过键盘录入得形式放到代码中参与运行
3.位置:java.util
4.scanner的使用
1.导包:
通过导包的方式找到要使用的类->导包的位置:类上
import java.util,Scanner->导入的是哪个包下面的哪个类
2.创建对象:
Scanner 变量名=new Scanner(System.in);
3.调用方法,实现键盘录入
变量名.nextInt()输入整数int型的
变量名.next()输入字符串 String型的

有时候IDEA(等开发工具)会帮我们做很多事情,包括导入包,所以这里我们不用导入Scanner这个类的包:import java.util,Scanner

变量名.next():录入字符串—>遇到空格和回车就结束录入了
变量名.nextLine():录入字符串—>遇到回车才结束录入(遇到空格继续录入)

原因:录入的数据和要求的数据类型不一致

第二章.Random随机数:
学习random和学习Scanner方式方法一样
1.概述:java自带的一个类
2.作用:可以在指定的范围内随机一个整数
3.位置:java.util
4.使用:
a.导包:import java.util.Random
b.创建对象:
Random 变量名=new Random()
c.调用方法,生成随机数:
变量名.nextInt()->有int的取值范围内随机一个整数
Random的使用:
三步骤,导包,创建对象,调用方法:
package xyf1117;
import java.util.Random;
import org.w3c.dom.ls.LSOutput;
public class test1 {
public static void main(String[] args) {
//创建对象
Random rd=new Random();
int data=rd.nextInt();//nextInt()说明范围是整数范围
System.out.println("data="+data);
}
}
在指定范围内随机一个数:
/*
nextInt(int bound)->在0-(bound-1)
跟最小值和最大值有关
a.nextInt(10)-> 0-9
b.在1-10之间随机一个数:nextInt(10)+1->(0-9)+1 -> 1-10
c.在1-100之间随机一个数:nextInt(100)+1->(0-99)+1 -> 1-100
d.在100-999之间随机一个数:nextInt(900)+100->(0-899)+1 -> 100-999
*/
package xyf1117;
import java.util.Random;
public class test2 {
public static void main(String[] args) {
//创建对象
Random rd=new Random();
//在1-100之间随机:
int data1=rd.nextInt(100)+1;
System.out.println("data1="+data1);
System.out.println("=================");
//100-999之间随机一个数
int data2=rd.nextInt(900)+100;
System.out.println("data2="+data2);
}
}
第三章.switch(选择语句)流程语句
1.switch的基本使用
1.格式:
switch(变量){
case 常量值1:
执行语句1;
break;
case 常量值2:
执行语句2;
break;
case 常量值3:
执行语句3;
break;
case 常量值4:
执行语句4;
break;
...
default:
执行语句n;
break;
}
2.执行流程:
用变量接收的值和下面case后面的常量值匹配,匹配上哪个case就执行哪个case对应的执行语句
如果以上所有case都没有匹配上,就走default对应的执行语句n
3.break关键字:代表的是结束switch语句。如果去掉break,程序就会从用户输入的那个值开始往下执行,直到遇到了break或者switch代码执行完毕了,就停止了,这个叫case的穿透性
4.注意:switch可以匹配什么类型的数据:
byte short int char 枚举类型 String类型(!无浮点型,这个浮点型有精度损失问题)
package xyf1117;
import java.util.Scanner;
public class test3 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);//创建一个读取用户输入数据的对象
System.out.println("请您输入一个整数:");
int data=sc.nextInt();
switch(data){
case 1:
System.out.println("鹅鹅鹅");
break;
case 2:
System.out.println("曲项向天歌");
break;
case 3:
System.out.println("白毛浮绿水");
break;
case 4:
System.out.println("红掌拨清波");
break;
default:
System.out.println("下面没有了");
break;
}
}
}
package xyf1117;
import java.util.Scanner;
public class test4 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int month=sc.nextInt();
switch(month){
case 12:
case 1:
case 2:
System.out.println("冬季");
break;
case 3:
case 4:
case 5:
System.out.println("春季");
break;
case 6:
case 7:
case 8:
System.out.println("夏季");
break;
case 9:
case 10:
case 11:
System.out.println("秋季");
break;
default:
System.out.println("什么情况?你家有这个月份");
}
}
}
第四章.分支语句



switch和if的区别:
1.switch会直接跳到相匹配的case
2.if从上到下挨个判断 -> 实际开发主要用if做判断,灵活
for循环的使用

while循环:

练习:一张纸的厚度0.1mm,珠穆朗玛峰的高度是8844430mm,这张纸要折多少次才能折成珠穆朗玛峰的高度
package xyf1117;
public class test8 {
public static void main(String[] args) {
//thickness表示折纸的厚度,n表示折叠的次数
double thickness=0.1;
int n=0;
while(thickness<=8844430){
n++;
thickness*=2;
}
System.out.println("要折叠"+n+"次才能折成珠穆朗玛峰的高度");
}
}
package xyf1117;
public class test8 {
public static void main(String[] args) {
//thickness表示折纸的厚度,n表示折叠的次数
double thickness=0.1;
int n=0;
while(thickness<=8844430){
n++;
//Math.pow(a,b)表示a的b次方
double p=Math.pow(2,n);
thickness=0.1*p;
}
System.out.println("要折叠"+n+"次才能折成珠穆朗玛峰的高度");
}
}
dowhile循环(了解)

3.特点:至少循环一次
循环控制语句:
需要俩关键字:
1.break:
在switch中代表结束switch语句
在循环中代表结束循环

2.continue:
结束当前循环,直接进入下一次循环,直至条件为false停止

死循环:
1.概述:
一直循环
2.什么情况下:
比较条件一直为true

嵌套循环:
1.概述:循环中还有循环(套娃)
2。先执行外层循环,再执行内层循环。内层循环一直执行,直到循环结束,外层循环再进入下一层循环,直到外层循环都结束了,整体结束

猜数字小游戏:
package xyf1117;
import java.util.Scanner;
import java.util.Random;
public class 猜数字小游戏 {
public static void main(String[] args) {
//1.创建Scanner和Random对象
Scanner sc=new Scanner(System.in);
Random rd=new Random();
//2.调用Random中的nextInt(100)+1,在1-100之间随机一个数 rdNumber
int rdNumber=rd.nextInt(100)+1;
while(true){
//3.调用Scanner中的nextInt()方法 键盘录入一个要猜的数 scNumber
System.out.println("请您猜一个数:");
int scNumber=sc.nextInt();
//4.如果scNumber大于rdNumber,证明猜大了
if (scNumber>rdNumber){
System.out.println("猜大了");
}else if(scNumber<rdNumber){
System.out.println("猜小了");
}else{
System.out.println("恭喜您,猜对了");
break;
}
}
}
}
模块四总结:






432

被折叠的 条评论
为什么被折叠?



