day03
一.选择语句
1.选择语句:switch
格式:
switch(表达式){
case 常量值1:
执行语句1;
break;
case 常量值2:
执行语句2;
break;
case 常量值3:
执行语句3;
break;
case 常量值4:
执行语句4;
break;
.....
default:
执行语句n;
break;
}
2.执行流程:
1.拿着我们所填的表达式去和下面每一个case后面的常量值去做匹配,匹配上谁,就走
对应的执行语句
2.如果以上所有的case都没有匹配上,直接走default对应的执行语句
3.注意:case后面的常量值的类型要和我们所填写的表达式的类型一致
break是结束switch语句结构的
代码演示:
public class Demo01Switch {
public static void main(String[] args) {
int i = 5;
switch (i) {
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;
}
}
========================================================
练习:
public static void main(String[] args) {
//定义月份变量,判断季节
int month = 6;
//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;
}
}
}
4.没有break会出现case的穿透性
如果没有break就一直往下穿透执行,直到遇到break或者程序结束了为止
代码演示:
public class Demo03Case {
public static void main(String[] args) {
int i = 3;
switch (i) {
case 1:
System.out.println("涛哥最帅!");
case 2:
System.out.println("波多小姐最美");
case 3:
System.out.println("大桥也很美!");
case 4:
System.out.println("柳岩也很美!");
break;
default:
System.out.println("他们都挺喜欢涛哥!");
}
}
}
二.for循环
循环之for循环
1.格式:
for(初始化变量;比较;变量变值){
循环体
}
2.执行流程:
1.先初始化变量
2.拿着这个变量去比较
3.如果比较成功,返回true,那么直接走循环体
4.变量的值变化(步进表达式)
5.接着比较,比较返回true,接着走循环体
6.接着步进表达式
7.接着比较,直到比较返回false,那么整个循环结束了
3.代码演示:
for(int i = 1;i<=10;i++){
System.out.println("我爱Java");
}
或者:
for(int i = 0;i<10;i++){
System.out.println("我爱Java");
}
for循环练习
练习1:求出1-100之间的偶数和
/*
1+2+3+4+5+6+7..+100
需求:1-100之间的偶数和
步骤:
1.定义一个变量去接收两个数的和
2.利用for循环去将1-100之间的数循环出来
3.拿着循环出来的每一个数去做判断,是否为偶数(数%2==0),如果是余数是0,证明是偶数,相加
将加完的结果重新赋值给那个变量
4.输出这个接收和的变量
*/
public class Demo03_ForTest {
public static void main(String[] args) {
int sum = 0;
for (int i = 1;i<=100;i++){
if (i%2==0){
sum = sum+i;
}
}
System.out.println("和为:"+sum);
}
}
练习2:求出所有的水仙花数
/*
求出所有的水仙花数
水仙花数:3位数
个位的立方+十位的立方+百位的立方 = 原数
153:27+125+1=153
3 = 153%10;
5 = 153/10%10;
1 = 153/100
步骤:
1.利用for循环去将所有的3位数循环出来
2.循环的过程中,拿出每一个被循环出来的数去判断
3.求出循环出来的数的个位 十位 百位
4.如果个位的立方+十位的立方+百位的立方 == 原数,直接输出
*/
public class Demo04_ForTest {
public static void main(String[] args) {
for (int i = 100;i<=999;i++){
int ge = i%10;
int shi = i/10%10;
int bai = i/100;
if (ge*ge*ge+shi*shi*shi+bai*bai*bai==i){
System.out.println(i);
}
}
}
}
练习3:
/*
统计水仙花个数:
步骤:
1.定义变量去统计水仙花的个数
2.利用for循环去将所有的3位数循环出来
3.循环的过程中,拿出每一个被循环出来的数去判断
4.求出循环出来的数的个位 十位 百位
5.如果个位的立方+十位的立方+百位的立方 == 原数,统计个数的变量加1
*/
public class Demo05_ForTest {
public static void main(String[] args) {
int count = 0;
for (int i = 100;i<=999;i++){
int ge = i%10;
int shi = i/10%10;
int bai = i/100;
if (ge*ge*ge+shi*shi*shi+bai*bai*bai==i){
count++;
}
}
System.out.println("水仙花的个数为:"+count);
}
}
三.while循环
1.格式:
初始化变量;
while(比较){
循环体;
步进表达式;
}
2.执行流程:
1.初始化变量
2.比较
3.如果比较返回true,进入循环体
4.步进表达式
5.接着比较,直到比较返回false,while循环结束了!
3.代码演示:
public class Demo01_While {
public static void main(String[] args) {
/*
循环10次,性感涛哥,在线发牌
*/
int i = 0;
while(i<10){
System.out.println("性感涛哥,在线发牌"+i);
i++;
}
}
}
while循环练习
练习1:
/*
需求:求出1-100之前的和利用while循环
*/
public class Demo02_WhileTest {
public static void main(String[] args) {
int sum = 0;
int i = 1;
while(i<=100){
sum+=i;//sum = sum+i;
i++;
}
System.out.println(sum);
}
}
练习2:
/*
纸的厚度是0.1毫米 珠穆朗玛峰的高度是8844430毫米
问:折多少次能折出一个珠穆朗玛峰来
步骤:
1.定义变量去统计折的次数
2.定义变量表示纸的厚度
3.定义变量表示山峰的高度
4.循环比较,比较纸的厚度是否小于等于山峰的高度,如果符合条件,就折纸 *2
5.统计次数的变量++
*/
public class Demo03_WhileTest {
public static void main(String[] args) {
int count = 0;
double paper = 0.1;
double zf = 8844430;
while(paper<=zf){
paper*=2;
count++;
System.out.println(paper);
}
System.out.println(count);
四.死循环
/*
死循环:一直循环
条件:一直为true
*/
public class DieFor {
public static void main(String[] args) {
/*for (int i = 0;i<10;){
System.out.println("岳不群自宫了~");
}*/
while(true){
System.out.println("孙悟空是最纯洁的猴");
}
}
}
五.嵌套for循环
1.概述:for中有for
2.执行流程:
先执行外层for循环,再执行内层for循环,内存for循环就一直循环,直到内层for循环结束,外层for循环进行下一次 循环.... 直到外层for循环结束了,那么整个所有的循环都结束了
3.代码演示:
public class ForAndFor {
public static void main(String[] args) {
for (int fen = 0; fen < 60; fen++) {
for (int miao = 0;miao<60;miao++){
System.out.println(fen+"分"+miao+"秒");
}
}
}
}
六.Random随机数
1.概述:是一个Java自带的类
2.数据类型:引用数据类型
3.作用:随机一个数
4.使用:
4.1 导包:java.util.Random
4.2 创建对象:Random 变量名 = new Random();
4.3 调用方法:
nextInt()-->是在int型范围内随机
nextInt(int fanwei):在指定范围内随机一个数
0-(fanwei-1)
需求:从100-999之间随机一个数
nextInt(900)+100 (0-899)+100-->整体都加100,所有的数往后挪100位
从1-100之间随机: nextInt(100)+1
5.代码演示
public class Demo02Random {
public static void main(String[] args) {
Random rd = new Random();
int num = rd.nextInt();
System.out.println(num);
System.out.println("------------------------------");
int result = rd.nextInt(10);
System.out.println(result);
System.out.println("------------------------------");
int result1 = rd.nextInt(900)+100;
System.out.println(result1);
}
}
猜数字小游戏
/*
猜数字小游戏:随机一个1-100之间的数
步骤
1.创建Scanner对象,调用nextInt()方法输入一个整数
2.创建Random对象,调用nextInt(100)+1
3.如果我们录入的数和随机的数相等:输出:恭喜你,中奖了
如果我们录入的数比随机的数大:猜大了!
如果我们录入的数比随机的数小:猜小了!
*/
public class Demo03RandomTest {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Random rd = new Random();
int rdNumber = rd.nextInt(100)+1;
System.out.println(rdNumber);
while(true){
System.out.println("请你输入一个(1-100)之间的数:");
int scNumber = sc.nextInt();
//判断
if (scNumber>rdNumber){
System.out.println("对不起,您猜大了!");
}else if(scNumber<rdNumber){
System.out.println("对不起,您猜小了!");
}else{
System.out.println("恭喜你,中奖了");
break;
}
}
}
}