控制台输入

有输出就会有输入,Java从控制台中读取用户输入的值,需要借助一个被称作scanner等类,scanner意为扫描仪,其用途和现实生活中的扫描仪一样,能够扫描用户输入的内容
核心内容:Scanner用于从控制台读取用户输入,需要注意的是,scanner类在Java unit这个包里不能像system类那样直接被使用,因此需要用import语句导入Java.util的 scanner类

import java.util.Scanner;

Scanner类的常用方法:

方法名 返回类型
next() String
nexBoolean() boolean
nextDouble() double
nextInt() int

Java代码演示如下

package yfw0708;
import Scanner;// 导入 Scanner 源码包
public class Practice1 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// 读取整数
System.out.println("请输入一个整数:");
int a = sc.nextInt();
// 读取浮点数
System.out.println("请输入一个浮点数:");
double b = sc.nextDouble();
// 字符串
System.out.println("请输入一个字符串:");
String str = sc.next();
System.out.println("a+b:" + (a + b));
System.out.println("b:" + b);
System.out.println("str:" + str);
System.out.println(a + b);
}
}

循环

循环:重复执行一段代码
1.while循环:
格式:
while(条件){ 代码-循环体 }

package yfw0618;

public class blog3 {
    static void main() {
        int age=8;
        while(age<18){
            System.out.println("未成年"); 
            age++;
        }
    }
}

2.for循环:
格式:
for(定义变量;设定条件;修改变量值){
代码
}
例如
for(int i=0;i<10;i++){ }
i 变量 属于循环的局部变量 只能在循环大括号中使用

package yfw0618;

public class blog3 {
    static void main() {
        for (int i=8;i<=10;i++){
            System.out.println("小于10");
        }
    }
}

3.do…while循环:(不常用)
do{
代码
}
while(条件);
一定会先执行一次代码 然后再判断条件
4.循环控制词:
break : 结束循环 跳出循环
continue : 继续 跳过本次执行,继续判断条件执行循环

设计判断月份天数的程序来运用上述知识

1,3,5,7,8,10,12月为31天
4,6,9,11月为30天
闰年2月29天;非闰年2月为28天
闰年规则
‌普通年份‌:能被 4 整除但不能被 100 整除的为闰年。
‌世纪年份‌:能被 400 整除的才是闰年,否则为平年。
想要解决这个问题,我们首先要判断的就是年份究竟是闰年还是非润年
其次就是要将31天、30天和2月单独区分
代码演示如下

package yfw0708;

import java.util.Scanner;

//输入月份,结合年份判断这个月天数
public class Practice1 {
    static void main() {
        while(true) {
            System.out.println("请输入年份");
            Scanner sc1 = new Scanner(System.in);
            int year = sc1.nextInt();
            System.out.println("请输入月份");
            Scanner sc2 = new Scanner(System.in);
            int month = sc2.nextInt();
            if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
                //闰年
                if (month == 2) {
                    System.out.println("29天");
                } else if ((month <= 7 && month % 2 == 1) || (month >= 8 && month % 2 == 0)) {
                    System.out.println("31天");
                } else {
                    System.out.println("30天");
                }
            } else {
                if (month == 2) {
                    System.out.println("28天");
                } else if ((month <= 7 && month % 2 == 1) || (month >= 8 && month % 2 == 0)) {
                    System.out.println("31天");
                } else {
                    System.out.println("30天");
                }
            }
        }
    }

}

结果如下:

请输入年份
2098
请输入月份
3
31天
请输入年份
2000
请输入月份
2
29天
请输入年份
2020
请输入月份
8
31天
请输入年份

如何判断是素数(循环逻辑)

判断规则:
素数就是质数‌,指的是大于1的自然数中,除了1和它本身以外不再有其他因数的数
其中1不是素数,2是唯一的偶素数
想要判断一个数是否是素数,我们可以用for循环来描述,让这个数字去和所有比它小的整数做除法。如果能除尽,则说明有因数,则是非素数
代码演示如下

package yfw0708;

import java.util.Scanner;

//输入数字,判断素数
public class Practice2 {
    static void main() {
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入数字");
        int math=sc.nextInt();
        boolean math_special=true;
        if (math==1) {
            System.out.println("不是素数");
        }else if(math==2) {
            System.out.println("是素数");
        }else {
            for(int i=2;i<math;i++){
                if (math%i==0){
                    math_special=false;
                    break;
                }

            }
            if (math_special){
                System.out.println("是素数");
            }else {
                System.out.println("不是素数");
            }

        }
    }
}

结果如下:

请输入数字
23
是素数
Logo

CANN开发者社区旨在汇聚广大开发者,围绕CANN架构重构、算子开发、部署应用优化等核心方向,展开深度交流与思想碰撞,携手共同促进CANN开放生态突破!

更多推荐