Java入门视频教程(三)4 Java基本语法------分支流程

0.运算符复习

1.使用Scanner对象从控制台读取数据。

标准输出流:System.out       标准输入流:System.in

Scanner   scanner = new Scanner( System.in );    //  在构造器中传入System.in

导入Scanner类   import java.util.Scanner

创建 Scanner 对象  : 1. Scanner   scanner = new Scanner( System.in ); 

读取int类型数据  :     2.  System.out.print("请输入:");

调用scanner对象nextInt() 方法 :int age = scanner.nextInt();

打印                                  System.out.println("age = "+age);

读取字符串:用  next()  方法:但是会因空格终止输入

用  nextLine()  方法:这个方法不会因为空格终止。两种方法都终止于回车

2. 流程控制

2.1顺序结构

从前往后一步一步执行。并发----多线程。

2.2分支结构

2.2.1 if

 if(判断条件) { 代码块 }     若代码块的语句只有一条,大括号可以省略。

import  java.util.Scanner;

pulic class DemoIf{

    public static void main(String args[]){
    
        Scanner scanner = new Scanner( System.in );
        System.out.print("请输入i:");
        int i  =  scanner.nextInt();

        System.out.print("请输入j:");
        int j  =  scanner.nextInt();
        
        if(i>j){
            System.out.println(i+" > "+j);
        }
        if(i < j){
            System.out.println(i+" < "+j);
        }


        System.out.print("请输入flag:");
        boolean flag  =  scanner.nextBoolean();
        if( flag ){
            System.out.println("flag = true");
        }
        
    }

}

2.2.2 if....else    

// 创建Scanner对象
Scanner scanner = new Scanner(System.in);
System.out.print("请输入i:");
int i = scanner.nextInt();
System.out.print("请输入j:");
int j = scanner.nextInt();
if (i > j){
System.out.println("i 比 j 大");
} else {
System.out.println("i 小于 或 等于 j");
}

2.2.3 if....else  if....else....

// 创建Scanner对象
Scanner scanner = new Scanner(System.in);
System.out.print("请输入i:");
int i = scanner.nextInt();
System.out.print("请输入j:");
int j = scanner.nextInt();
if (i > j){ // 执行条件判断①
System.out.println("i 比 j 大"); // ①为true时执行
} else if (i < j) { // ①为false继续执行下一个条件判断②
System.out.println("i 比 j 小"); // ②为true时执行
} else {
System.out.println("i 和 j 相等"); // ②为false时执行
}

2.2.4 if....else 嵌套

if (i > j){ // 执行条件判断①
System.out.println("i 比 j 大"); // ①为true时执行
} else if (i < j) { // ①为false继续执行下一个条件判断②
System.out.println("i 比 j 小"); // ②为true时执行
} else {
System.out.println("i 和 j 相等"); // ②为false时执行
// 嵌套在其他if...else结构内的if
if (m > n){
System.out.println("m 比 n 大");
}
}  //  使用嵌套会影响代码可读性  逻辑复杂  不容易调试

2.4.5 switch....case 语句

字面意思: 切换switch   不同的    情况case   。                                                                                               切换需要有依据,这就是我们在switch后面的括号要指定的数据。

import java.util.Scanner;
public class DemoSwitchCase {
public static void main(String[] args){
// 创建Scanner对象
Scanner scanner = new Scanner(System.in);
System.out.print("请输入季节:");
String season = scanner.nextLine();
// 使用season变量的值和后面的case依次进行比较
// 遇到一个满足条件的case,那么后面的都会被执行,包括default分支
// 除非在某个case中使用了break关键字,停止了case的执行。
switch(season){
case "spring":
System.out.println("我喜欢春天");
// break ;
case "summer":
System.out.println("我喜欢夏天");
// break ;
case "autumn":
System.out.println("我喜欢秋天");
// break ;
case "winter":
System.out.println("我喜欢冬天");
// break ;
// 当前面每一个case都不匹配时执行default分支(默认分支)
default:
System.out.println("我喜欢梅雨季节");
}
}
}

import java.util.Scanner;  // 导包
public class textText {
// switch  case   练习1  请从键盘输入岳小鹏的期末成绩,并加以判断
	public static void main(String[] args) {
		//一、用户输入成绩数据
		//创建Scanner对象scanner
		Scanner scanner = new Scanner(System.in);
		//打印提示信息
		System.out.print("请输入分数 : ");
		//读取整数
		int score = scanner.nextInt();
		System.out.println("输入的分数是 : " + score);
		//按照不同成绩分段写分支
		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 if(score < 60) {
			System.out.println("继续努力" );
		}else {
			System.out.println("成绩不合规" );
		}
	}
}
import java.util.Scanner;
public class textText1 {
/**
由键盘输入三个整数分别存入变量num1、num2、num3,对它们进行排序,并且从小到大输
出。练习2
*/
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		//读取数据num1
		System.out.print("输入num1:");
		int num1 = scanner.nextInt();
		//读取数据num2
		System.out.print("输入num2:");
		int num2 = scanner.nextInt();
		//读取数据num3
		System.out.print("输入num3:");
		int num3 = scanner.nextInt();
		//比较num1
		int swap = 0;
		if(num1 > num2) {
			swap = num2;
			num2 = num1;
			num1 = swap;
		}
		if(num2 > num3) {
			swap = num3;
			num3 = num2;
			num2 = swap;
			if(num1 > num2) {
				swap = num2;
				num2 = num1;
				num1 = swap;
			}
		}
		System.out.println("num1 = " + num1 + "\nnum2 = " + num2 + "\nnum3 = "+num3);
	}
}
第九题
大家都知道,男大当婚,女大当嫁。那么女方家长要嫁女儿,当然要提出一定的条件:高:
180cm以上;富:财富1千万以上;帅:是。
如果这三个条件同时满足,则:“我一定要嫁给他!!!”
如果三个条件有为真的情况,则:“嫁吧,比上不足,比下有余。”
如果三个条件都不满足,则:“不嫁!”
*/
import java.util.Scanner;
import java.util.Random;
public class testMarry {

	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		System.out.print("请输入你的身高:");
		int height = scanner.nextInt();
		System.out.print("请输入你的财富:");
		int money = scanner.nextInt();
		System.out.print("请输入你的颜值:");
		boolean face = scanner.nextBoolean();
		
		if(height >= 180 && money >= 1000 && face) {
			System.out.print("我要给你生猴子!!!");
		}else if(height >= 180 || money >= 1000 || face) {
			System.out.print("考虑考虑!!!");
		}else {
			System.out.print("你是个好人!");
		}
	}
}
/**
我家的狗5岁了,5岁的狗相当于人类多大呢?其实,狗的前两年每一年相当于人类的10.5岁,之后每增加一年
就增加四岁。那么5岁的狗相当于人类多少年龄呢?应该是:10.5 + 10.5 + 4 + 4 + 4 = 33岁。
编写一个程序,获取用户输入的狗的年龄,通过程序显示其相当于人类的年龄。如果用户输入负数,请显示一个提示信息。
*/
import java.util.Scanner;
public class testForDog {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		//读取狗狗年龄
		System.out.println("请输入狗狗年龄:");
		double dogAge = scanner.nextInt();
		//判断狗狗年龄
		if (dogAge <= 0) {
			System.out.println("请重新输入!");
		} else if (dogAge <= 2) {
			System.out.println(dogAge + "岁的狗狗相当于人的" + dogAge * 10.5 + "岁");
		} else {
			double twoYearAge = 2 * 10.5;
			double morethanTwoYear = (dogAge-2)*4;
			double personAge = twoYearAge + morethanTwoYear;
			System.out.println(dogAge + "岁的狗狗相当于人的" + personAge + "岁");
		}
	}
}
/**
世界最高山峰是珠穆朗玛峰,它的高度是8844.43米,假如我有一张足够大的纸,它的厚度是0.1毫米。
请问,我折叠多少次,可以折成珠穆朗玛峰的高度?    练习1
*/
public class testwhile {

	public static void main(String[] args) {
		//统一单位
		double height = 88444300;
		double paper = 1.0;
		//记录折纸次数
		int count = 0;
		//记录折纸厚度
		double thickness = paper;
		
		//进入循环
		while(thickness <= height) {
			thickness *= 2;
			count++;
		}
		System.out.println("thickness = " + thickness);
		System.out.println("count = " + count);

	}

}
/**
假设你想开发一个玩彩票的游戏,程序随机地产生一个两位数的彩票中奖号码,提示用户输入一个
两位数,然后按照下面的规则判定用户是否能赢。
1)如果用户输入的数匹配彩票的实际顺序,奖金10 000美元。
2)如果用户输入的所有数字匹配彩票的所有数字,但顺序不一致,奖金 3 000美元。
3)如果用户输入的一个数字仅满足顺序情况下匹配彩票的一个数字,奖金1 000美元。
4)如果用户输入的一个数字仅满足非顺序情况下匹配彩票的一个数字,奖金500美元。
5)如果用户输入的数字没有匹配任何一个数字,则彩票作废。
提示:使用(int)(Math.random() * 90 + 10)产生随机数。
Math.random() : [0,1) * 90 [0,90) + 10 [10,100) [10,99]
*/
import java.util.Scanner;
import java.util.Random;
public class testCaiPiao {

	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		
		//使用math.random生成随机数
		Random rand = new Random();//随机数方法一Random.nextInt()左闭右开区间
		int randomInt = rand.nextInt(90)+10;//生成随机数0-100
		//获取中奖号码的个个位上的数字
		int tenValue = randomInt / 10; //中奖号码十位
		int singleValue = randomInt % 10;//中奖号码个位
		
		System.out.println(randomInt);
		//double randomDouble = Math.random();//
		//System.out.println("randomDouble = " + randomDouble);//生成0-1之间的小数
		//乘以100得到两位随机数
		//int randomInt = (int)(randomDouble * 100);
		//System.out.println("randomInt = " + randomInt);
		
		//读取用户输入
		System.out.print("请输入你的中奖号码:");
		int userNumber = scanner.nextInt();
		int userTenValue = userNumber / 10; //用户输入十位
		int userSingleValue = userNumber % 10;//用户输入个位
		
		if(userNumber >= 10 && userNumber <= 99) {
			System.out.println("开奖信息:");
			System.out.println("用户号码:" + userNumber);
			System.out.println("中奖号码:" + randomInt);
			if(userNumber == randomInt){
				System.out.println("!一等奖!10000元!");
			}else if((userSingleValue*10 + userTenValue) == randomInt) {
				System.out.println("!二等奖!3000元!");
			}else if(userTenValue == tenValue || userSingleValue == singleValue) {
				System.out.println("!三等奖!1000元!");
			}else if(userTenValue == tenValue || userTenValue == singleValue || userSingleValue == singleValue || userSingleValue == tenValue) {
				System.out.println("!四等奖!500元!");
			}else {
				System.out.println("\n !!!@下次一定!!!");
			}
		}else {
			System.out.println("\n !!!@下次一定!!!");
		}
	}
}
/**
从键盘输入“年、月、日”,判断这一天是当年的第几天。
判断闰年的标准:可以被4整除但不能被100整除或可以被400整除
*/
import java.util.Scanner;
public class testYearMonthDay {

	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		System.out.print("year = ");
		int year = scanner.nextInt();
		System.out.print("month = ");
		int month = scanner.nextInt();
		System.out.print("day = ");
		int day = scanner.nextInt();
		
		//保存天数
		int finalResult = 0;
		
		//保存是否是闰年 默认为false  若是则为true
		boolean runYear = false;
		if( (year % 4 == 0 && year % 100 != 0 ) || year % 400 == 0) {//是闰年
			runYear = true;
		}
		
		if( month >= 1 && month <= 12 ) {
			switch( month ) {
				case 1:
					if(day >= 1 && day <= 31) {
						finalResult = day;
					}else {
						System.out.println("输入天数不合法!");
					}
					break;
				case 2:
					if(runYear) {
						if(day >= 1 && day <= 29) {
							finalResult = day + 31;
						}else {
							System.out.println("输入天数不合法!");
						}
					}else {
						if(day >= 1 && day <= 28) {
							finalResult = day + 31;
						}else {
							System.out.println("输入天数不合法!");
						}
					}
					break;
				case 3:
					if(day >= 1 && day <= 31) {
						finalResult = day + 31 + ((runYear)?29:28);
					}else {
						System.out.println("输入天数不合法!");
					}
					break;
				case 4:
					if(day >= 1 && day <= 30) {
						finalResult = day + 31 + ((runYear)?29:28) + 31;
					}else {
						System.out.println("输入天数不合法!");
					}
					break;
				case 5:
					if(day >= 1 && day <= 31) {
						finalResult = day + 31 + ((runYear)?29:28) + 31 + 30;
					}else {
						System.out.println("输入天数不合法!");
					}
					break;
				case 6:
					if(day >= 1 && day <= 30) {
						finalResult = day + 31 + ((runYear)?29:28) + 31 + 30 + 31;
					}else {
						System.out.println("输入天数不合法!");
					}
					break;
				case 7:
					if(day >= 1 && day <= 31) {
						finalResult = day + 31 + ((runYear)?29:28) + 31 + 30 + 31 + 30;
					}else {
						System.out.println("输入天数不合法!");
					}
					break;
				case 8:
					if(day >= 1 && day <= 31) {
						finalResult = day + 31 + ((runYear)?29:28) + 31 + 30 + 31 + 30 + 31;
					}else {
						System.out.println("输入天数不合法!");
					}
					break;
				case 9:
					if(day >= 1 && day <= 30) {
						finalResult = day + 31 + ((runYear)?29:28) + 31 + 30 + 31 + 30 + 31 + 31;
					}else {
						System.out.println("输入天数不合法!");
					}
					break;
				case 10:
					if(day >= 1 && day <= 31) {
						finalResult = day + 31 + ((runYear)?29:28) + 31 + 30 + 31 + 30 + 31 + 31 + 30;
					}else {
						System.out.println("输入天数不合法!");
					}
					break;
				case 11:
					if(day >= 1 && day <= 30) {
						finalResult = day + 31 + ((runYear)?29:28) + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31;
					}else {
						System.out.println("输入天数不合法!");
					}
					break;
				case 12:
					if(day >= 1 && day <= 31) {
						finalResult = day + 31 + ((runYear)?29:28) + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30;
					}else {
						System.out.println("输入天数不合法!");
					}
					break;
				default:
					System.out.println("输入的month不合法!!!");
			}
		}
		System.out.println(year + "年" + month + "月" + day + "日是第" +finalResult + "天");
	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值