JAVA基础day03循环

类型转换

  • 自动

byte—–>short—–>int—–>long—–>double

char—–>int

float—–>double

  • 强转

小数据类型 变量名=(小数据类型)大数据类型的值

if分支

单分支

双分支

多分支

嵌套if

常用快捷键

psvm :然后tab键,自动生成main方法
 
sout :然后tab键,自动生成 System.out.println()方法
 
ctrl+/ :单行注释,执行1次,注释掉,再执行一次,取消注释
 
ctrl+shift+/ :多行注释
 
ctrl+d :复制光标所在行
 
ctrl+y :删除光标所在行,或者删除选中的多行
 
shift+enter :换行
 
shift+tab :向左缩进
 
Ctrl+/ 单行注释
 
ctrl+shift+/ 多行注释

Switch
基本用法
跟多重的if进行对比

用于等值比较,if既可以用于等值,又可以用于范围

语法结构:

细节说明: 

1.每个case后面的值,不能相同 
2.switch括号中支持哪些数据类型?byte、short、int、char、String、enum枚举 
3.break不能省,否则当匹配到某个case时,后面的case也会执行,不符合实际 
4.若多个case的执行逻辑一样的话,可以合并在一起

switch() {
       case 常量1:
        语句1;
        break;
    case 常量2:
           语句2;
        break;
    case 常量3:
        语句n;
        break;
  } 
/**
细节说明: 
1.每个case后面的值,不能相同 
2.switch括号中支持哪些数据类型?byte、short、int、char、String、enum枚举 
3.break不能省,否则当匹配到某个case时,后面的case也会执行,不符合实际 
4.若多个case的执行逻辑一样的话,可以合并在一起
*/
 
case 1: 
case 2: 
System.out.println("第1季度"); 
break; 
 
//练习,输入学生成绩,[90,100]优秀,[60-90]良好,其他不及格

新写法

switch (cc) {
// -> 箭头符号,在lambda中会大量使用,这种写法,已经具备break的功效
case 1 -> System.out.println("one"); case 2 -> System.out.println("two");
case 3,4 -> System.out.println("aaaaaaaa"); default -> System.out.println("many");
}

循环

为什么要用

引入:打印试卷,若没有循环,我们需要使用sout()输出100行【复制99行,修改99次】 无疑:很麻烦

发现:上面做的事情,就是一个重复的事情,对于重复的操作,java提供了循环来解决 使用循环后的初体验:代码少了很多,而且可读行、可维护性都变得非常好。

while(循环条件-boolean类型){
    循环操作;
    更新循环变量:
}
//完成1-n,n-999键盘输入,计算偶数/奇数之和

 

是什么

生活中的循环:跑步、日复一日.......

循环3要素:

  1. 循环操作:你要干的事情

  1. 循环条件:你的操作,有一个条件限制

  1. 更新循环变量:条件是通过变量值去动态更新的

怎么玩

一眼望不到尽头,看身边!先分析1次、2次操作,后面的就同理

while循环

该循环,它的循环体内的代码有可能一次都不执行。

while(循环条件-boolean类型) {
循环操作;
更新循环变量;
}

需求:考试,若不合格,补考,补考次数不能超过3次,最多考四次。我们就使用控制台输入模拟交卷 以及是否合格的一个结果。

for循环

针对循环次数固定的情况,我们通常使用for循环

//特殊用法1:中间不写,默认是true for (int j = 1;; j++) {
System.out.println("第"+j+"份试卷");
}
 
//特殊2:
for (int j = 1;;) { System.out.println("第"+j+"份试卷");
}
 
//特殊3: for (;;) {
System.out.println("第份试卷");
}
 
//特殊4
for (int k = 0,m=6; k <=6 && m >= 0 ; k++,m--) { System.out.println(k + "+" + m + "=" + (k + m));

作业

import java.util.Scanner;
 
/**
 * @Description: 5.13
 * @author: cjy
 * @date:2021/5/13 15:13
 */
import java.util.Scanner;
import java.util.jar.JarOutputStream;
 
public class Test04 {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        double r = Math.random();
        int a = (int) (r * 9000 + 1000);
        int m = a / 1000;//千位
        int n = a / 100 - 10 * m;//百位
        int k = a / 10 - 100 * m - 10 * n;//十位
        int l = a - 1000 * m - 100 * n - 10 * k;//个位
        int max;//最大数
        //比较得出最大数
        max=m>=n?m:n;
        int max1=max;
        max=max1>=k?max1:k;
        max1=max;
        max=max1>=l?max1:l;
        int count=0;//猜的次数
        long startTime = System.currentTimeMillis();//开始时间
        // 用户猜测随机数
        do {
            System.out.println("输入你的猜想");
            int guess = input.nextInt();
            if (max < guess) {
                System.out.println("大了,再猜一次吧!");
                count++;
            } else if (max > guess) {
                System.out.println("小了,再猜一次吧!");
                count++;
            } else {
                // 猜中
                count++;
                break;
            }
        } while (true);
        long endTime = System.currentTimeMillis();//结束时间
        System.out.println("这个数字是:" + max);
        System.out.println("您猜的次数是:" + count);
        System.out.println("您猜的时间是:" + (endTime - startTime) + "毫秒");
        // 给出评价
        if (count == 1) {
            System.out.println("你太牛逼了");
        } else if (count >= 2 && count <= 5) {
            System.out.println("不错,再接再厉");
        } else if (count >= 5 && count <= 10) {
            System.out.println("需要努力了");
        }
        else {
            System.out.println("你是猪吗");
        }
    }


 
}

import java.util.Scanner;
public class Test05 {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.println("随意输入一个两位数/三位数/四位数");
        int num = input.nextInt();
        int realnum=num;
        int count=0;//计算位数
        while (num > 0) {
            num = num / 10;
            count++;
        }
        do {
            if (count==4) {//四位数
                if (realnum%4==0) {
                    System.out.println(realnum+"是闰年");
                }
                else
                {
                    System.out.println(realnum+"不是闰年");
                }
              break;
            }
            else if (count==3) {
                int m = realnum / 100;//百位
                int n = realnum / 10 - 10*m;//十位
                int k = realnum  - 100 * m - 10* n;//个位
                int he=m*m*m+n*n*n+k*k*k;
                if(he==num)
                {
                    System.out.println(realnum+"是一个水仙花数");
                }
                break;
            }
            else if (count== 2) {
                System.out.println(realnum+"是一个二位数");
                break;
            } else {
                System.out.println("请输入正确的数!");
            }
        }while(true);
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值