本文共 843 个字数,平均阅读时长 ≈ 3分钟
分支结构
if-else
小明注册某论坛,要求录入个人相关信息如下:
请输入你的姓名、你的年龄、你的体重、你是否单身、你的性别等情况。
code代码
import java.util.Scanner;
/*
流程if-else练习:小明注册某论坛,要求录入个人相关信息如下:
请输入你的姓名、你的年龄、你的体重、你是否单身、你的性别等情况。
*/
public class IfElseTest {
public static void main(String[] args) {
//定义姓名,年龄,体重,是否单身,性别变量
String name;
int age;
double weight;
boolean isSingle;
char gender;
//从控制台接收数据
Scanner scanner = new Scanner(System.in);
System.out.println("欢迎注册XXX论坛!!!");
System.out.println("请输入你的姓名:");
name = scanner.next();
System.out.println("请输入你的年龄:");
age = scanner.nextInt();
System.out.println("请输入你的体重:");
weight = scanner.nextDouble();
System.out.println("请输入你是否单身(是输入true,否输入false):");
isSingle = scanner.nextBoolean();
System.out.println("请输入你的性别(男/女):");
gender = scanner.next().charAt(0);
//输出结果
System.out.println("你的个人信息为:\n姓名:" + name + "\n年龄:" + age + "\n体重:" + weight + "\n是否单身:" + isSingle + "\n性别:" + gender);
//关闭资源,scanner不会自动回收
scanner.close();
}
}
运行效果
switch-case
编写程序,从键盘输入2023年的"month"和"day",要求通过程序输出输入的日期为2023年的第几天
code代码
import java.util.Scanner;
/*
switch-case练习:编写程序,从键盘输入2023年的"month"和"day",要求通过程序输出输入的日期为2023年的第几天
*/
public class SwitchCaseTest {
public static void main(String[] args) {
//定义月份、天数、每个月天数、第几天变量
int month, days, monthDays, totalDays=0;
//接收键盘输入的月份和天数
Scanner scanner = new Scanner(System.in);
System.out.print("请输入2023年月份:");
month = scanner.nextInt();
System.out.print("请输入2023" + month + "月天数:");
days = scanner.nextInt();
//计算总天数,利用了switch-case穿透性
switch (month) {
case 12:
totalDays += 30;
case 11:
totalDays += 31;
case 10:
totalDays += 30;
case 9:
totalDays += 31;
case 8:
totalDays += 31;
case 7:
totalDays += 30;
case 6:
totalDays += 31;
case 5:
totalDays += 30;
case 4:
totalDays += 31;
case 3:
totalDays += 28;
case 2:
totalDays += 31;
case 1:
totalDays += days;
break;
default:
System.out.println("您的输入有误");
}
//输出结果
System.out.println("2023年" + month + "月" + days + "天是2023年的第" + totalDays + "天!");
//关闭资源
scanner.close();
}
}
运行效果
if与switch的选择
可以使用switch-case的情况都可以转换为if-else,反之不对。switch-case的条件是常量值(byte,short,int,char,枚举,String),使用场景较狭窄,if-else的条件是布尔值,使用情况较宽广。if-else和switch同时可以使用的时候建议使用switch-case,switch-case效率更高
循环结构
循环四要素
- 初始化部分
- 循环条件部分
- 循环体部分
- 迭代部分
for循环
四要素
for(1;2;4) {
3
}
执行流程:1 -> 2 -> 3 -> 4 -> 2 -> 3 -> 4 ...
练习:输入两个正整数m和n,求其最大公约数和最小公倍数
比如:12和20的最大公约数是4,最小公倍数是60
code代码
import java.util.Scanner;
/*
For循环练习:输入两个正整数m和n,求其最大公约数和最小公倍数
比如:12和20的最大公约数是4,最小公倍数是60
*/
public class ForTest {
public static void main(String[] args) {
//定义整数m和n,最大公约数x,最小公倍数y,中间变量temp
int m, n, x, y, temp;
//从键盘获取m,n的值
Scanner scanner = new Scanner(System.in);
System.out.print("请输入m的值:");
m = scanner.nextInt();
System.out.print("请输入n的值:");
n = scanner.nextInt();
//计算m与n的大公约数
temp = Math.min(m, n);
for (int i = temp; i >= 1; i--) {
if (m % i == 0 && n % i == 0) {
System.out.println("最大公约数为:" + i);
break;
}
}
//计算m与n的最小公倍数
temp = Math.max(m, n);
for (int i = temp; ; i++) {
if (i % m == 0 && i % n == 0) {
System.out.println("最大公倍数为:" + i);
break;
}
}
//关闭scanner资源
scanner.close();
}
}
运行效果
while循环
四要素
1
while(2) {
3
4
}
执行流程:1 -> 2 -> 3 -> 4 -> 2 -> 3 -> 4 ...
for循环可以和while循环相互转换
练习:随机生成一个100以内的整数,猜这个随机数是多少?从键盘输入数,如果
大了,提示大了,如果小了,提示小了,如果对了,就不再猜了,并统计一共猜了多少次。
code代码
import java.util.Scanner;
/*
while循环练习:随机生成一个100以内的整数,猜这个随机数是多少?从键盘输入数,如果
大了,提示大了,如果小了,提示小了,如果对了,就不再猜了,并统计一共猜了多少次。
*/
public class WhileTest {
public static void main(String[] args) {
//定义100以内的随机数,键盘输入的数,猜的总次数变量。
int ranNum, input, count = 1;
//生成随机1-100以内的数
ranNum = (int) (Math.random() * 100) + 1;
//接收用户输入并猜谜计算
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.print("输入你猜的数字(100以内):");
input = scanner.nextInt();
if (input < ranNum) {
System.out.println("猜小了!!!");
} else if (input > ranNum) {
System.out.println("猜大了!!!");
} else {
System.out.println("恭喜你,猜对啦!!!");
System.out.println("你总共猜了" + count + "次。");
break;
}
count++;
}
//关闭scanner资源
scanner.close();
}
}
评论 (0)