分支结构
一,if-else:
注意:嵌套时,if和else通过就近原则匹配。
练习:
//定义三个int型变量并赋值,使用if-else获取这三个数中较大数的实现
class GetMax
{
public static void main(String[] args)
{
int num1=10,num2=21,num3=-21;
int max=0;
if(num1>=num2&&num1>=num3){
max=num1;
}
if(num2>=num1&&num2>=num3){
max=num2;
}
if(num3>=num1&&num3>=num2){
max=num3;
}
System.out.println("三个数中最大值为:"+max);
}
}
/*编写程序,声明2个double型变量并赋值。
判断第一个数大于10.0,且第二个数小于20.0,打印两数之和。
否则,打印两数乘积
*/
class PrinIn
{
public static void main(String[] args)
{
double d1=12.3;
double d2=32.1;
if(d1>10.0&&d2<20.0){
System.out.println(d1+d2);
}else{
System.out.println(d1*d2);
}
}
}
/*
如何从键盘获取不同类型的变量:需要使用Scanner类
具体实现步骤:
1,导包:import java.util.Scanner
2,Scanner的实例化:Scanner scan=new Scanner(System.in);
3,调用Scanner类的相关方法,来获取指定类型的变量
注意:根据相应方法,若输入指定类型值;输入数据类型与要求类型不匹配时,报异常致程序终止
*/
import java.util.Scanner; //导包
class ScannerTest{
public static void main(String[] args){
//Scanner的实例化
Scanner scan=new Scanner(System.in);
//调用Scanner的相关方法
System.out.println("请输入您的姓名:");
String name =scan.next(); //String类型为next(),其他类型均为nextXxx()
System.out.println("您的姓名是:"+name);
System.out.println("请输入您的年龄:");
int age = scan.nextInt();
System.out.println("您的年龄是:"+age);
System.out.println("请输入您的体重:");
double weight=scan.nextDouble();
System.out.println("您的体重是:"+weight);
System.out.println("你是否单身?(true/false):");
boolean islone=scan.nextBoolean();
System.out.println("您的感情状态是:"+islone);
//对于char型的获取,Scanner没有提供相关方法。只能获取一个字符串
System.out.println("请输入您的性别(男/女)");
String gender =scan.next(); //String类型为next(),其他类型均为nextXxx()
System.out.println("您的性别是:"+gender);
}
}
运行效果:
例题:
//①导包
import java.util.Scanner;
class IfTest
{
public static void main(String[] args)
{
//②实例化
Scanner scan=new Scanner(System.in);
System.out.println("请输入岳小鹏期末成绩:(0-100)");
//③调用相关方法
int score=scan.nextInt();
if (score==100){
System.out.println("奖励一辆BMW");
}else if(score>80 && score<=99){
System.out.println("奖励一台iPhone");
}else if(score>=60 && score<=80){
System.out.println("将一台ipad");
}else{ //else结构可有可无(根据需要)
System.out.println("奖励个寂寞");
}
}
}
例题:
//①导包
import java.util.Scanner;
class IfTest
{
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(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);
}
}else{
if(num3>=num2){
System.out.println(num1+","+num2+","+num3);
}else if(num3<=num1){
System.out.println(num3+","+num1+","+num2);
}else{
System.out.println(num1+","+num3+","+num2);
}
}
}
}
例题(小心有坑):
正确结果是输出:atguigu。
if(y>2)后无{ },所以往下只能罩得住一行代码。
正确结果为:b。
练习——测算狗的年龄:
import java.util.Scanner;
class DogAge
{
public static void main(String[] args)
{
Scanner scanage=new Scanner(System.in);
System.out.println("请输入狗子的年龄:");
int dogAge=scanage.nextInt();
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("咋会有负值?你的狗子还没出生!");
}
}
}
练习——彩票游戏
分析:
若随机生成45。
你输入45,中10000美元;
输入54,中3000美元;
输入42、25…中1000美元;
输入24,51…中500美元。
import java.util.Scanner;
class TestCaiPiao{
public static void main(String[] args){
//1、随机产生一个两位数
//System.out.println(Math.random());//产生[0,1)
int number = (int)(Math.random()*90 + 10);//得到[10,99],即[10,100)
//System.out.println(number);
int numberShi = number/10;
int numberGe = number%10;
//2、用户输入一个两位数
Scanner input = new Scanner(System.in);
System.out.print("请输入一个两位数:");
int guess = input.nextInt();
int guessShi = guess/10;
int guessGe = guess%10;
if(number == guess){
System.out.println("奖金10 000美元");
}else if(numberShi == guessGe && numberGe == guessShi){
System.out.println("奖金3 000美元");
}else if(numberShi==guessShi || numberGe == guessGe){
System.out.println("奖金1 000美元");
}else if(numberShi==guessGe || numberGe == guessShi){
System.out.println("奖金500美元");
}else{
System.out.println("没中奖");
}
System.out.println("中奖号码是:" + number);
}
}
补充知识——如何获取一个随机数:
double value1=Math.random(); //[0.0,1.0)
/*注意此处如果直接乘以100,范围变为[0.0,100.0),当随机数小于0.1时,
会出现范围以外的数。如:9、8、7*/
int value=(int)(Math.random()*90+10);
//[0.0,1.0)-->[0.0,90.0)-->[10.0,100.0)-->[10,99](截断操作)
//公式:想得到[a,b],使用(int)(math.random()*(b-a+1)+a);