热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

004循环判断

分支结构if-else分支练习1:将三个数进行排序*编写程序:由键盘输入三个整数分别存入变量num1、num2、num3,对它们进行排序(使用if-elseif-else),并且从

分支结构

if-else分支

image-20210112102814891


练习1:将三个数进行排序

/*
编写程序:由键盘输入三个整数分别存入变量num1、num2、num3,
对它们进行排序(使用 if-else if-else),并且从小到大输出
*/
import java.util.Scanner;
class ExerTest01 {
public static void main(String[] args){

Scanner scanner = new Scanner(System.in);
System.out.println("请输入第一个数字:");
int num1 = scanner.nextInt();

System.out.println("请输入第二个数字:");
int num2 = scanner.nextInt();

System.out.println("请输入第三个数字:");
int num3 = scanner.nextInt();

if(num1 >= num2){
if (num2 >= num3){
System.out.println(num3 + ", " + num2 + ", " + num1);
}else if(num3 >= num1){
System.out.println(num2 + ", " + num1 + ", " + num3);
}else{
System.out.println(num2 + ", " + num3 + ", " + num1);
}
}else{
if(num3 >= num2){
System.out.println(num1 + ", " + num2 + ", " + num3);
}else if(num1 >= num3){
System.out.println(num3 + ", " + num1 + ", " + num2);
}else{
System.out.println(num1 + ", " + num3 + ", " + num2);
}
}
}
}

练习2:判断执行结果

image-20210112101357186


练习3:输出狗狗年龄

/*
狗的前两年每 一年相当于人类的10.5岁,之后每增加一年就增加四岁
*/
import java.util.Scanner;
class ExerTest02 {
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
System.out.println("请输入狗狗年龄:");
double dogAge = scanner.nextDouble();
if(dogAge > 0 && dogAge <= 2){
System.out.println("狗狗今年" + dogAge * 10.5 + "岁");
}else if (dogAge > 2){
System.out.println("狗狗今年" + (2 * 10.5 + (dogAge-2) * 4) + "岁");
}else{
System.out.println("您输入的数字有误");
}
}
}

练习4:彩票游戏

/*
假设你想开发一个玩彩票的游戏,程序随机地产生一个两位数的彩票,提示用户输入
一个两位数,然后按照下面的规则判定用户是否能赢。
如果用户输入的数匹配彩票的实际顺序,奖金10 000美元。
如果用户输入的所有数字匹配彩票的所有数字,但顺序不一致,奖金 3 000美元。
如果用户输入的一个数字仅满足顺序情况下匹配彩票的一个数字,奖金1 000美元。
如果用户输入的一个数字仅满足非顺序情况下匹配彩票的一个数字,奖金500美元。
如果用户输入的数字没有匹配任何一个数字,则彩票作废。
提示:使用(int)(Math.random() * 90 + 10)产生随机数。
Math.random() : [0,1) * 90 --> [0,90) + 10 --> [10,100) --> [10,99]
*/
import java.util.Scanner;
class ExerTest03 {
public static void main(String[] args){
//获得用户输入的数字
Scanner scanner = new Scanner(System.in);
System.out.println("请输入数字(两位数的):");
int numPer = scanner.nextInt();
String perNum = numPer + "";
//将用户输入的数字分成个位数
char perIn0 = perNum.charAt(0);
char perIn1 = perNum.charAt(1);
//机器随机生成的数字
int numRand = (int)(Math.random() * 90 + 10);
//int numRand = 34;
String randNum = numRand + "";
//System.out.println(randNum);
char comIn0 = randNum.charAt(0);
char comIn1 = randNum.charAt(1);
//比较判断
if(numPer == numRand){
System.out.println("奖金10 000美元");
}else if(perIn0 == comIn1 && perIn1 == comIn0){
System.out.println("奖金 3 000美元");
}else if(perIn0 == comIn0 || perIn1 == comIn1){
System.out.println("奖金1 000美元");
}else if(perIn0 == comIn1 || perIn1 == comIn0){
System.out.println("奖金500美元");
}else{
System.out.println("彩票作废");
}
}
}

练习5:猜大小

/*
提供三个1-6的随机数,作为掷骰子得到的点数。如果各个点数相同,则为豹子。
如果三个骰子点数和,小于或等于9,则为“小”。
如果三个骰子点数和,大于9,则为“大”。
用户随机选择:押大、押小或者押豹子。通过判断,输出客户是否押正确。
*/
import java.util.Scanner;
class IfTest01 {
public static void main(String[] args){
int result1 = (int)(Math.random()*6+1);
int result2 = (int)(Math.random()*6+1);
int result3 = (int)(Math.random()*6+1);

char answer;
if(result1 == result2 && result1 == result3){
answer = '豹';
}else if(result1 + result2 + result3 <= 9){
answer = '小';
}else{
answer = '大';
}

System.out.println(answer);

Scanner scanner = new Scanner(System.in);
System.out.println("请猜大小(豹子/大/小):");
String perValue = scanner.next();
char value = perValue.charAt(0);
if(value == answer){
System.out.println("押中了!");
}else{
System.out.println("没押中");
}
}
}

switch-case分支

image-20210112102853408


练习1:字符串转字符

/*
使用 switch 把小写类型的 char型转为大写。
只转换 a, b, c, d, e. 其它的输出 “other”。
*/
import java.util.Scanner;
class SwitchTest01 {
public static void main(String[] args){

Scanner scanner = new Scanner(System.in);
System.out.println("请输入a,b,c,d,e:");
String character01 = scanner.next();
char character02 = character01.charAt(0);
switch (character02){
case 'a':
character02 = 'A';
System.out.println(character02);
break;
case 'b':
character02 = 'B';
System.out.println(character02);
break;
case 'c':
character02 = 'C';
System.out.println(character02);
break;
case 'd':
character02 = 'D';
System.out.println(character02);
break;
case 'e':
character02 = 'E';
System.out.println(character02);
break;
}
}
}

练习2:判断成绩

/*
对学生成绩大于60分的,输出“合格”。低于60分的,输出“不合格”。
*/
import java.util.Scanner;
class SwitchTest02 {
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
int score = scanner.nextInt();
switch (score / 60){
case 0:
System.out.println("不合格");
break;
default:
System.out.println("合格");
}
}
}

练习3:判断月份输出季节

/*
根据用于指定月份,打印该月份所属的季节。
3,4,5 春季 6,7,8 夏季 9,10,11 秋季 12, 1, 2 冬季
*/
import java.util.Scanner;
class SwitchTest03 {
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
int mOnth= scanner.nextInt();
switch (month){
case 3:
case 4:
case 5:
System.out.println("春季");
break;
case 6:
case 7:
case 8:
System.out.println("夏季");
break;
case 9:
case 10:
case 11:
System.out.println("秋季");
break;
case 12:
case 1:
case 2:
System.out.println("冬季");
}
}
}

练习4:通过年月日判断全年第几天数

/*
从键盘分别输入年、月、日,判断这一天是当年的第几天
注:判断一年是否是闰年的标准:
可以被4整除,但不可被100整除

可以被400整除
*/
import java.util.Scanner;
class SwitchTest05 {
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
System.out.println("请输入年份:");
int year = scanner.nextInt();
System.out.println("请输入月份:");
int mOnth= scanner.nextInt();
System.out.println("请输入天数:");
int day = scanner.nextInt();

int sumDay = 0;
// 1, 3, 5, 7, 8, 10, 12 == 31
// 4, 6, 9, 11 == 30
switch (month){
case 12:
sumDay += 30;
case 11:
sumDay += 31;
case 10:
sumDay += 30;
case 9:
sumDay += 31;
case 8:
sumDay += 31;
case 7:
sumDay += 30;
case 6:
sumDay += 31;
case 5:
sumDay += 30;
case 4:
sumDay += 31;
case 3:
if((year%4 == 0 && year%100 != 0)||year%400 == 0){
sumDay += 29;
}else{
sumDay += 28;
}
case 2:
sumDay += 31;
case 1:
sumDay += day;
default:
System.out.println(year + "年" + month + "月" + day + "日" + ",是该年的第" + sumDay + "天");
}
}
}

image-20210112103709155


循环结构

for循环

image-20210112103838921


练习1:打印最大公约数和最小公倍数

/*
题目:输入两个正整数m和n,求其最大公约数和最小公倍数。
比如:12和20的最大公约数是4,最小公倍数是60。
*/
import java.util.Scanner;
class ForExercise01 {
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
System.out.println("请输入第一个整数:");
int result1 = scanner.nextInt();
System.out.println("请输入第二个整数:");
int result2 = scanner.nextInt();
//题目中第一个要求:计算最大公约数
//先将输入的数字区分大小
int max = (result1 >= result2) ?result1 :result2;
int min = (result1 //先计算小数值本身的是否是最大公约数,如果不是每次循环减一,直至数值为1结束
for (int i = min ;i>=1 ;i--){
if(max % i == 0 && min % i == 0){
System.out.println(result1 + ", " + result2 + "的最大公约数是:" + i);
break;
}
}
//题目中第二个要求:计算最小公倍数
//两数的最小公倍,最小值是用户输入的最大值;两数的最小公倍,最大值是两数相乘的积
for(int i = max ;i <= (max * min); i++){
if(i % max == 0 && i % min == 0){
System.out.println(result1 + ", " + result2 + "的最小公倍数是:" + i);
break;
}
}
}
}

练习2:打印三位数的水仙花数

/*
输出所有的水仙花数,所谓水仙花数是指一个3位数,其各个位上数 字立方和等于其本身。
例如: 153 = 1*1*1 + 3*3*3 + 5*5*5
*/
class ForExercise02 {
public static void main(String[] args){
for(int i = 100; i <1000; i++){
//先将这个三位数,百位十位个位,分别取出
int j1 = 0, j2 = 0, j3 = 0;
j1 = i / 100; //百位
j2 = (i - 100 * j1) / 10; //十位
j3 = i - 100 * j1 - 10 * j2; //个位
if(i == j1*j1*j1 + j2*j2*j2 + j3*j3*j3){
System.out.println(i);
}
}

}
}

练习3:打印九九乘法表

import java.util.Scanner;
class Test02 {
public static void main(String[] args){
//Scanner scanner = new Scanner(System.in);
//int height = scanner.nextInt();

int num = 9;
for(int i = 1; i <= num; i++){
for(int j = 1; j <= i; j++){
System.out.print(i + " * " + j + " = " + i*j + "\t");
}
System.out.println();
}
}
}


推荐阅读
  • 深入解析Java枚举及其高级特性
    本文详细介绍了Java枚举的概念、语法、使用规则和应用场景,并探讨了其在实际编程中的高级应用。所有相关内容已收录于GitHub仓库[JavaLearningmanual](https://github.com/Ziphtracks/JavaLearningmanual),欢迎Star并持续关注。 ... [详细]
  • 本文介绍如何从字符串中移除大写、小写、特殊、数字和非数字字符,并提供了多种编程语言的实现示例。 ... [详细]
  • 本文探讨了在Java中如何正确地将多个不同的数组插入到ArrayList中,避免所有数组在插入后变得相同的问题。我们将分析代码中的问题,并提供解决方案。 ... [详细]
  • 深入解析Java虚拟机(JVM)架构与原理
    本文旨在为读者提供对Java虚拟机(JVM)的全面理解,涵盖其主要组成部分、工作原理及其在不同平台上的实现。通过详细探讨JVM的结构和内部机制,帮助开发者更好地掌握Java编程的核心技术。 ... [详细]
  • 本文介绍 Java 中如何使用 Year 类的 atMonth 方法将年份和月份组合成 YearMonth 对象,并提供代码示例。 ... [详细]
  • 深入解析动态代理模式:23种设计模式之三
    在设计模式中,动态代理模式是应用最为广泛的一种代理模式。它允许我们在运行时动态创建代理对象,并在调用方法时进行增强处理。本文将详细介绍动态代理的实现机制及其应用场景。 ... [详细]
  • 深入解析ArrayList与LinkedList的差异
    本文详细对比了Java中ArrayList和LinkedList两种常用集合类的特性、性能及适用场景,通过代码示例进行测试,并结合实际应用场景分析其优缺点。 ... [详细]
  • 本文深入探讨了 Java 中 LocalTime 类的 isSupported() 方法,包括其功能、语法和使用示例。通过具体的代码片段,帮助读者理解如何检查特定的时间字段或单位是否被 LocalTime 类支持。 ... [详细]
  • 为了解决不同服务器间共享图片的需求,我们最初考虑建立一个FTP图片服务器。然而,考虑到项目是一个简单的CMS系统,为了简化流程,团队决定探索七牛云存储的解决方案。本文将详细介绍使用七牛云存储的过程和心得。 ... [详细]
  • 深入解析 Android IPC 中的 Messenger 机制
    本文详细介绍了 Android 中基于消息传递的进程间通信(IPC)机制——Messenger。通过实例和源码分析,帮助开发者更好地理解和使用这一高效的通信工具。 ... [详细]
  • 本文目录一览:1、java方法执行顺序2、ja ... [详细]
  • 本题要求实现一个函数,用于检查给定的字符串是否为回文。回文是指正向和反向读取都相同的字符串。例如,“XYZYX”和“xyzzyx”都是回文。 ... [详细]
  • Java 实现二维极点算法
    本文介绍了一种使用 Java 编程语言实现的二维极点算法。该算法用于从一组二维坐标中筛选出极点,适用于需要处理几何图形和空间数据的应用场景。文章不仅详细解释了算法的工作原理,还提供了完整的代码示例。 ... [详细]
  • 本题来自WC2014,题目编号为BZOJ3435、洛谷P3920和UOJ55。该问题描述了一棵不断生长的带权树及其节点上小精灵之间的友谊关系,要求实时计算每次新增节点后树上所有可能的朋友对数。 ... [详细]
  • Python + Pytest 接口自动化测试中 Token 关联登录的实现方法
    本文将深入探讨 Python 和 Pytest 在接口自动化测试中如何实现 Token 关联登录,内容详尽、逻辑清晰,旨在帮助读者掌握这一关键技能。 ... [详细]
author-avatar
雪影飘枫2502928577
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有