热门标签 | 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实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • 本文介绍了一个Java猜拳小游戏的代码,通过使用Scanner类获取用户输入的拳的数字,并随机生成计算机的拳,然后判断胜负。该游戏可以选择剪刀、石头、布三种拳,通过比较两者的拳来决定胜负。 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • 本文介绍了如何在给定的有序字符序列中插入新字符,并保持序列的有序性。通过示例代码演示了插入过程,以及插入后的字符序列。 ... [详细]
  • 猜字母游戏
    猜字母游戏猜字母游戏——设计数据结构猜字母游戏——设计程序结构猜字母游戏——实现字母生成方法猜字母游戏——实现字母检测方法猜字母游戏——实现主方法1猜字母游戏——设计数据结构1.1 ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • Java太阳系小游戏分析和源码详解
    本文介绍了一个基于Java的太阳系小游戏的分析和源码详解。通过对面向对象的知识的学习和实践,作者实现了太阳系各行星绕太阳转的效果。文章详细介绍了游戏的设计思路和源码结构,包括工具类、常量、图片加载、面板等。通过这个小游戏的制作,读者可以巩固和应用所学的知识,如类的继承、方法的重载与重写、多态和封装等。 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 本文讨论了如何优化解决hdu 1003 java题目的动态规划方法,通过分析加法规则和最大和的性质,提出了一种优化的思路。具体方法是,当从1加到n为负时,即sum(1,n)sum(n,s),可以继续加法计算。同时,还考虑了两种特殊情况:都是负数的情况和有0的情况。最后,通过使用Scanner类来获取输入数据。 ... [详细]
  • 本文介绍了在Java中gt、gtgt、gtgtgt和lt之间的区别。通过解释符号的含义和使用例子,帮助读者理解这些符号在二进制表示和移位操作中的作用。同时,文章还提到了负数的补码表示和移位操作的限制。 ... [详细]
  • JavaSE笔试题-接口、抽象类、多态等问题解答
    本文解答了JavaSE笔试题中关于接口、抽象类、多态等问题。包括Math类的取整数方法、接口是否可继承、抽象类是否可实现接口、抽象类是否可继承具体类、抽象类中是否可以有静态main方法等问题。同时介绍了面向对象的特征,以及Java中实现多态的机制。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 本文介绍了Java高并发程序设计中线程安全的概念与synchronized关键字的使用。通过一个计数器的例子,演示了多线程同时对变量进行累加操作时可能出现的问题。最终值会小于预期的原因是因为两个线程同时对变量进行写入时,其中一个线程的结果会覆盖另一个线程的结果。为了解决这个问题,可以使用synchronized关键字来保证线程安全。 ... [详细]
  • 本文详细介绍了Java中vector的使用方法和相关知识,包括vector类的功能、构造方法和使用注意事项。通过使用vector类,可以方便地实现动态数组的功能,并且可以随意插入不同类型的对象,进行查找、插入和删除操作。这篇文章对于需要频繁进行查找、插入和删除操作的情况下,使用vector类是一个很好的选择。 ... [详细]
  • 从零学Java(10)之方法详解,喷打野你真的没我6!
    本文介绍了从零学Java系列中的第10篇文章,详解了Java中的方法。同时讨论了打野过程中喷打野的影响,以及金色打野刀对经济的增加和线上队友经济的影响。指出喷打野会导致线上经济的消减和影响队伍的团结。 ... [详细]
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社区 版权所有