IF-ELSE嵌套练习
一,1,编写程序,由键盘输入三个整数分别存入变量num1,num2,num3中,对它们进行排序,使用if-else结构,并按从小到大的顺序输出:
package practice; import java.util.Scanner;
public class IfTest {
public static void main( String args[]) {
System.out.println("请输入第一个整数:");
Scanner scan =new Scanner(System.in);
int num1=scan.nextInt();
System.out.println("请输入第二个整数:");
int num2=scan.nextInt();
System.out.println("请输入第三个整数:");
int num3=scan.nextInt();
if(num1<num2) {
if(num3<num1) {
System.out.println(num3+","+num1+","+num2);
}else if(num3>num2) {
System.out.println(num1+","+num2+","+num3);
}else System.out.println(num1+","+num3+","+num2);
}
else {//num1>num2
if(num3>num1) {
System.out.println(num2+","+num1+","+num3);
}else if(num3<num2) {
System.out.println(num3+","+num2+","+num1);
}else System.out.println(num2+","+num3+","+num1);
}
} }
运行结果:
说明:IF-ELSE结构是可以相互嵌套的;
如果IF-ELSE结构中的执行语句只有一行时,对应的一对{}可以省去,但不建议这样做;
2,我家的狗五岁了,五岁的狗相当于人类的多少岁呢?其实,狗的前两年每一年相当于人的10.5岁,之后每增加一年就增加四岁。编写一个程序,获取用户输入的狗的年龄,通过程序显示其相当于人类的鸟年龄?如果用户输入负数,给出相应的提示。
import java.util.Scanner; public class IfTest2 {
public static void main(String args[]) {
double t;
System.out.println("请输入狗的年龄:");
Scanner scan=new Scanner(System.in);
int dogAge=scan.nextInt();
if(dogAge>2) {
t= (dogAge-2)*4+21;
System.out.println(dogAge+"岁的狗相当于人类的"+t+"岁");
}else if(dogAge<=2&&dogAge>=0) {
t=dogAge*10.5;
System.out.println(dogAge+"岁的狗相当于人类的"+t+"岁");
}else {
System.out.println("您的输入有误,请重新输入");
}
} }
运行结果:
二,整理Scanner键盘输入相关知识:
从键盘获取输入值的具体实现步骤:
- 导包:import java.util.Scanner;
- Scanner的实例化:Scanner scan=new Scanner(System.in);
- 调用Scanner类的相关方法,来获取指定类型的变量
scan.next();获取字符串
scan.nextInt();获取整型
scan.nextDouble();获取浮点型
scan.nextBoolean();获取布尔型
对于char型的获取,Scanner没有相应的方法,只能获取一个字符串;
如果非要获取char型,使用string里面的charAt()方法
import java.util.Scanner; public class ScannerTest {
public static void main(String args[]) { Scanner Scan=new Scanner(System.in);
System.out.println("请输入你的性别:");
String gender=Scan.next();
char genderchar=gender.charAt(0);
System.out.println(genderchar);
}
}
注意:需要根据相应的方法,来输入指定类型的值,如果输入的数据类型与要求的类型不匹配时,会抛出一个异常InputMisMatchException;(自动类型提升的除外)
IF-ELSE嵌套练习的更多相关文章
- angular2系列教程(十一)路由嵌套、路由生命周期、matrix URL notation
今天我们要讲的是ng2的路由的第二部分,包括路由嵌套.路由生命周期等知识点. 例子 例子仍然是上节课的例子:
- CRL快速开发框架系列教程十三(嵌套查询)
本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...
- ScrollView嵌套ListView,GridView数据加载不全问题的解决
我们大家都知道ListView,GridView加载数据项,如果数据项过多时,就会显示滚动条.ScrollView组件里面只能包含一个组件,当ScrollView里面嵌套listView,GridVi ...
- Android 中关于Fragment嵌套Fragment的问题
转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/5802146.html 问题描述: 在项目中Activity A中嵌套Fragment B,Fragment ...
- C#语句2——循环语句(for循环与for循环嵌套)
循环:反复执行某段代码. 循环四要素:初始条件,循环条件,循环体,状态改变. for(初始条件;循环条件;状态改变) { 循环体 } break ——中断循环,跳出整个循环 continue——停止本 ...
- C#用链式方法表达循环嵌套
情节故事得有情节,不喜欢情节的朋友可看第1版代码,然后直接跳至“三.想要链式写法” 一.起缘 故事缘于一位朋友的一道题: 朋友四人玩LOL游戏.第一局,分别选择位置:中单,上单,ADC,辅助:第二局新 ...
- SQL连接操作符介绍(循环嵌套, 哈希匹配和合并连接)
今天我将介绍在SQLServer 中的三种连接操作符类型,分别是:循环嵌套.哈希匹配和合并连接.主要对这三种连接的不同.复杂度用范例的形式一一介绍. 本文中使用了示例数据库AdventureWorks ...
- 关于对For循环嵌套优化的问题
1.案例描述 由于一次Java面试的笔试题,当时没有写出很好的解决方案,特此专门撰写一篇博客来加以记录,方便日后的查看 面试题目如下:从性能上优化如下代码并说明优化理由? for (int i = 0 ...
- 高级查询---嵌套and分页
高级嵌套语句: 子查询: 语句: select * from 表名 where 列名= ( 子查询语句 ) 注意:子查询语句必须放在小括号呢 可以使用< >=等运算符号,sql serve ...
- [LeetCode] Flatten Nested List Iterator 压平嵌套链表迭代器
Given a nested list of integers, implement an iterator to flatten it. Each element is either an inte ...
随机推荐
- 微信小程序let和var以及const有什么区别
在JavaScript中有三种声明变量的方式:var.let.const. var:声明全局变量,换句话理解就是,声明在for循环中的变量,跳出for循环同样可以使用. for(var i=0;i&l ...
- 求两个数的最大公约数和最小公倍数Java(cvte考题)
//最大公约数 最小公倍数 通过测试 public class GongYue{ public static int gongyue(int m, int n) throws Exception{ i ...
- 如何安装 Angular CLI 并且检查 CLI 的版本
想在系统中安装 Angular CLI ,如何进行安装并且如何检查 CLI 的版本? 可以使用命令: npm install -g @angular/cli 进行安装. 使用命令 ng version ...
- codevs 1009 产生数x
题目描述 Description 给出一个整数 n(n<10^30) 和 k 个变换规则(k<=15). 规则: 一位数可变换成另一个一位数: 规 ...
- Linux开机启动和登录时各个文件的执行顺序
1.在Linux内核被加载后,第一个运行的程序便是/sbin/init 该文件会读取/etc/inittab文件,并依据此文件来进行初始化工作.其中/etc/inittab文件最主要的作用就是设定Li ...
- A. Even Substrings
A. Even Substrings time limit per test 0.5 seconds memory limit per test 256 megabytes input standar ...
- redis-sentinel 主从复制高可用
Redis-Sentinel Redis-Sentinel是redis官方推荐的高可用性解决方案,当用redis作master-slave的高可用时,如果master本身宕机,redis本身或者客户端 ...
- js对数组分组处理
一.js数组分组 1.js对数据分组类似group by 源码如下: <!DOCTYPE html> <html lang="en"> <head&g ...
- HANA LOG日志过大处理办法
http://www.fenxiangzhe.net/archives/50 在SAP HANA 运维过程我们经常遇到因前期HANA LOG模式未设置成OVERWIRTE或者日志备份时间设置过长导致日 ...
- jenkins入门-----(1)安装、配置
Jenkins概念 Jenkins是一个开源的.可扩展的持续集成.交付.部署(软件/代码的编译.打包.部署)的基于web界面的平台.允许持续集成和持续交付项目,无论用的是什么平台,可以处理任何类型的构 ...