Java基础语法5(输入与循环)
由设计月份和判断素数来了解并运用循环
控制台输入
有输出就会有输入,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
是素数
更多推荐


所有评论(0)