栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java执行语句--------04

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java执行语句--------04

一、分支语句 简单if分支 1.语法结构

if(表达式){
          ...代码块...
 } 

1.2理解

表达式的结果必须是boolean类型

true -- 执行代码块

false - 跳出if分支,执行if以外的代码

1.3做实验

if(false){

        System.out.println("...代码块...");

}

        System.out.println("if以外的代码"); 

1.4案列 
import java.util.Scanner;
public class Test01{
	
	public static void main(String[] args){
			Scanner scan = new Scanner(System.in);
		
			System.out.println("请输入成绩:");
			double score = scan.nextDouble();
				
			if(score > 98){
				System.out.println("奖励萌萌法拉利玩具赛车一辆");
			}
				

	}
}
 二、复杂if分支 2.1案例

案例一: 人类的健康值在20-25的数值内为健康(健康值算法为:体重(Kg) / 身高(米)的平方)

import java.util.Scanner;
public class Test02{
	
	public static void main(String[] args){
                //创建Scanner对象
				Scanner scan = new Scanner(System.in);
				
				//输入体重和身高
				System.out.println("请输入体重(Kg):");
				double weight = scan.nextDouble();
				System.out.println("请输入身高(M):");
				double height = scan.nextDouble();
				
				//计算健康值
				double health = weight/(height*height);
				
				//判断
				if(health > 20 && health < 25){
					System.out.println("小护士说:"健康,请保持身材哟~~~"");
				}
			
	}
}

案例二:爱田奈奈Java成绩大于98分,而且音乐成绩大于80分,老师奖励他;或者Java成绩等于100分,音乐成绩大于70分,老师也可以奖励他。

 

import java.util.Scanner;
public class Test02{
	
	public static void main(String[] args){
              //创建Scanner类的对象
				Scanner scan = new Scanner(System.in);
				
				//输入成绩
				System.out.println("请输入Java成绩:");
				double javaScore = scan.nextDouble();
				System.out.println("请输入音乐成绩:");
				double musicScore = scan.nextDouble();
				
				//判断
				if((javaScore>98 && musicScore>80) || (javaScore==100 && musicScore>70)){
					System.out.println("奖励爱田奈奈烤肠5根");
				}	 
				
			总结:
				1.if可以判断区间
				2.if可以判断复杂的条件
		*/
		
			
	}
}

三、if ...else...分支  3.1语法结构

if(表达式){

        ...代码块...

}else{

        ...else代码块...

}

3.2理解

表达式的结果必须是boolean类型

 true -- 执行代码块

false - 执行else代码块

3.3做实验

if(false){

        System.out.println("...代码块...");

}else{

        System.out.println("...else代码块...");

}

        System.out.println("if分支以外的代码块"); 

3.4案列 

案例:如果上原亚衣Java考试成绩大于98分,就奖励他一个劳斯莱斯,否则就罚他进行编码

import java.util.Scanner;
public class Test03{
	
	public static void main(String[] args){
			//创建Scanner类的对象
			Scanner scan = new Scanner(System.in);
				
			//输入成绩
			System.out.println("请输入成绩:");
			double score = scan.nextDouble();
				
			//判断
			if(score > 98){
				System.out.println("奖励上原亚衣劳斯莱斯玩具赛车一辆");
			}else{//其余情况(成绩小于等于98)
				System.out.println("通宵补课编写代码");
			}
				
			总结:
				if...else...:在二选一的情况下使用	
	}
}

 

 四、多重if分支 4.1语法结构

if(表达式1){

        ...代码块1...

}else if(表达式2){

        ...代码块2...

}else if(表达式n){

        ...代码块n...

}else{

        ...else代码块...

}

 4.2理解

表达式的结果必须是boolean类型从上往下判断,哪个表达式先成立(true),就执行对应的代

码块,执行完毕后直接跳出整个分支语句

else{} -- 其余的情况

else{} -- 根据需求,可写可不写

4.3做实验

if(true){

        System.out.println("...代码块1...");

}else if(true){

        System.out.println("...代码块2...");

}else if(true){

        System.out.println("...代码块n...");

}else{

        System.out.println("...else代码块...");

}

System.out.println("if分支以外的代码"); 

4.4案列

案例一:人类的健康值在15-20的数值内为偏瘦20-25的数值内为健康25-30的数值内为偏胖(健康值算法为:体重(Kg) / 身高(米)的平方) 

 

import java.util.Scanner;
public class Test04{
	
	public static void main(String[] args){
			//创建Scanner类的对象
			Scanner scan = new Scanner(System.in);
						
			//输入体重和身高
			System.out.println("请输入体重(Kg):");
			double weight = scan.nextDouble();
			System.out.println("请输入身高(M):");
			double height = scan.nextDouble();
				
			//计算健康值
			double health = weight/(height*height);
				
			//判断
			if(health > 15 && health <= 20){
				System.out.println("小护士说:"偏瘦,多吃垃圾食品、多喝碳酸饮料、多熬夜~~~"");
			}else if(health > 20 && health <= 25){
				System.out.println("小护士说:"健康,请保持身材哟~~~"");
			}else if(health > 25 && health <= 30){
				System.out.println("小护士说:"偏胖,多运动,嘿嘿嘿~~~"");
			}else{
				System.out.println("小护士说:"健康值异常,请去医院进行详细检查"");
			}	
	}
}

 案例二:通过键盘录入学生成绩如果在90-100之间,则打印“A”,否则如果在80-90之间,则打印“B”,否则如果在70-80之间,则打印“C”否则如果在60-70之间,则打印“D”否则如果在0- 60之间,则打印“E”否则打印“成绩异常”

import java.util.Scanner;
public class Test04{
	
	public static void main(String[] args){
			//创建Scanner类的对象
				Scanner scan = new Scanner(System.in);
				
				//输入成绩
				System.out.println("请输入成绩:");
				double score = scan.nextDouble();
				
				//判断
				if(score >= 90 && score <= 100){
					System.out.println("A");
				}else if(score >= 80 && score < 90){
					System.out.println("B");
				}else if(score >= 70 && score < 80){
					System.out.println("C");
				}else if(score >= 60 && score < 70){
					System.out.println("D");
				}else if(score >= 0 && score < 60){
					System.out.println("E");
				}else{
					System.out.println("成绩异常");
				}

		
	}
}

五、嵌套if分支 5.1案列

案例:学校举行运动会,百米赛跑跑入16秒内的学生有资格进决赛,根据性别分别进入男子组和女子组。 

 

import java.util.Scanner;
public class Test05{
	
	public static void main(String[] args){
				//创建Scannner类的对象
				Scanner scan = new Scanner(System.in);
				
				//输入比赛成绩
				System.out.println("请输入比赛成绩:");
				double score = scan.nextDouble();

				//判断成绩
				if(score >= 0 && score < 16){
					//输入性别
					System.out.println("请输入性别:");
					String sex = scan.next();
					
					//判断性别
					if(sex.equals("男")){//判断两个字符串内容是否相等
						System.out.println("恭喜进入到男子组决赛");
						
					}else if(sex.equals("女")){//判断两个字符串内容是否相等
						System.out.println("恭喜进入到女子组决赛");
						
					}else{
						System.out.println("性别输入有误...");
					}
					
				}else if(score >= 16){
					System.out.println("无缘总决赛,谢谢参与...");
				}else{
					System.out.println("成绩输入有误...");
				}

		
		
	}
}

 六、Switch分支 6.1语法结构

switch(表达式){

        case 值1:

                ...代码块1...

        break;

        case 值2:        

                ...代码块2...

        break;

        case 值n:

               ...代码块n...

        break;

        default:

                ...default代码块...

        break;

}

6.2理解

表达式的结果可以为:byte、short、int、char、枚举(JDK1.5)、字符串(JDK1.7)表达式的结果分别给值1、值2、值n比较,哪个相等就执行对应的代码块如果都不相等,就执行default代码块default代码块根据需求可写可不写break的作用是跳出整个switch分支语句

6.3做实验

switch(500){

        case 10:

                System.out.println("10");

        break;

        case 50:

                System.out.println("50");

        break;

        case 100:

                System.out.println("100");

        break;

        default:

                System.out.println("default代码块");

        break;

}

        System.out.println("switch分支以外的代码"); 

6.4案列

案例:铃原爱蜜莉参加计算机编程大赛如果获得第一名,将参加1个月马尔代夫旅游如果获得第二名,将奖励苹果Pro笔记本电脑一部 如果获得第三名,将奖励移动硬盘一个否则,晚上给铃原爱蜜莉通宵补课

import java.util.Scanner;
public class Test06{
	
	public static void main(String[] args){
				//创建Scanner类的对象
				Scanner scan = new Scanner(System.in);
				
				//输入比赛成绩
				String str = scan.next();
				
				//判断
				switch(str){
					case "第一名":
						System.out.println("奖励1个月马尔代夫旅游");
					break;
					case "第二名":
						System.out.println("奖励苹果Pro笔记本电脑一部");
					break;
					case "第三名":
						System.out.println("奖励移动硬盘一个");
					break;
					default:
						System.out.println("铃原爱蜜莉通宵补课");
					break;
				}
			
	}
}

 七、Switch分支深入 7.1面试题

面试题1:case的值可以相同吗?

case的值不可以相同 

面试题2:default可以省略吗?

可以省略

面试题3:break可以省略吗?

可以省略

面试题4:default的位置一定要在最后吗?

不一定,但是一般是放在最后(为了可读性)

面试题5:表达式值的类型可以是什么?

回答方式1:byte、short、int、char、枚举(JDK1.5)、字符串(JDK1.7)

回答方式2:表达式的类型只能是int,switch底层是把byte、short、char、枚举(JDK1.5)、字符串(JDK1.7)转换为int值

 byte 自动转型 int

 short自动转型 int

char获取的是字符的ASCII码

枚举 获取对象中的编号(后续讲枚举的时候再了解)

 字符串 获取字符串的hash码(数字,后续讲枚举的时候再了解) 

面试题6: case值的类型可以不一样吗?

case值的类型如果是兼容的,就可以不一样

    switch(97){
        case 10:
            System.out.println("10");
        break;
        case 50:
            System.out.println("50");
        break;
        case 'a':
            System.out.println("a");
        break;
        case 100:
            System.out.println("100");
        break;
        default:
            System.out.println("default代码块");
        break;
    }
 7.2案列

输入年和月,输出当月的天数

分析:

        1、3、5、7、8、10、12月:31天
        4、6、9、11月:30天
        2月:平年28天、闰年29天
        判断闰年的标准:年份被4整除并且不能100整除 或者 年份被400整数

import java.util.Scanner;
public class Test07{
	
	public static void main(String[] args){
				Scanner scan = new Scanner(System.in);
		
				System.out.println("请输入年:");
				int year = scan.nextInt();
				System.out.println("请输入月:");
				int month = scan.nextInt();
				
				int day = 0;//记录当月的天数
				switch(month){
					case 1:case 3:case 5:case 7:case 8:case 10:case 12:
						day = 31;
					break;
					case 4:case 6:case 9:case 11:
						day = 30;
					break;
					case 2:
						if(year%4==0 && year%100!=0 || year%400==0){
							day = 29;
						}else{
							day = 28;
						}
					break;
				}
				
				System.out.println(year + "年" + month + "当月的天数为" + day + "天");

		
	}
}

 

八、for循环

应用场景:重复性的做某个功能
好处:减少代码的冗余 

8.1语法结构

for(表达式1;表达式2;表达式3){

        ...代码块/循环体...

8.2理解

表达式1 - 初始化变量
表达式2 - 判断条件(结果必须是boolean,true就执行代码块,false就跳出循环)
表达式3 - 更新变量 

8.3执行步骤

1.初始化变量
2.判断条件(结果必须是boolean)
   2.1 true -- 执行代码块,更新变量,再重复执行第2步
   2.2 fasle - 跳出循环 

 8.4做实验

使用for循环输出5遍 -- "用良心做教育,做真实的自己"

for(int i = 0;i<5;i++){
    System.out.println("用良心做教育,做真实的自己");
 }
 8.5for变形记

int i = 0;

for(;i<5;){

        System.out.println("用良心做教育,做真实的自己");

         //i++和++i作用在更新变量时,没有区别
         //i++;
          ++i;
}      
        System.out.println(i);//5

8.6需求

需求1:输出1~10的数字 

for(int i = 1;i<=10;i++){
					System.out.println(i);
				}

 需求2:输出1~10的奇数数字

for(int i = 1;i<=10;i+=2){
					System.out.println(i);
				}

 需求3:输出10~1的数字

for(int i = 10;i>0;i--){
					System.out.println(i);
				}

需求4:输出10~1的偶数数字

for(int i = 10;i>0;i-=2){
					System.out.println(i);
				}

注: 死循环:

				for(;;){
					System.out.println("用良心做教育,做真实的自己");
				}

 注://伪死循环(int类型取值范围是有边际)

for(int i = 1;i>0;i++){
					System.out.println("用良心做教育,做真实的自己");
				}
 8.6注意

1.for循环中声明的变量作用域在整个循环中(循环外没有用)
2.i++和++i作用在更新变量时,没有区别
3.初始化变量不一定从0开始
4.更新变量不一定每次都++
5.尽量不要使用死循环

8.7案列

案例1:循环录入5次int类型的数字,输出总和

 
Scanner scan = new Scanner(System.in);
		
				int sum = 0;//总和
				
				for(int i = 1;i<=5;i++){
					System.out.println("请输入第" + i + "个数字:");
					int num = scan.nextInt();
					
					sum += num;//累加总和
				}
				
				System.out.println("总和为:" + sum);

案例2:循环录入麻生希同学的5门课成绩,计算平均分

Scanner scan = new Scanner(System.in);
		
				double sum = 0;//总分
				
				for(int i = 1;i<=5;i++){
					System.out.println("请输入第" + i + "门成绩:");
					double num = scan.nextDouble();
					
					sum += num;//累加总和
				}
				
				//计算平均分
				double avg = sum/5;
				
				System.out.println("平均分为:" + avg);

 案例3:循环录入5次int类型的数字,输出最大值

Scanner scan = new Scanner(System.in);

				//假设第一个数字就是最大值
				System.out.println("请输入第1个数字:");
				int max = scan.nextInt();
				
				for(int i = 2;i<=5;i++){
					System.out.println("请输入第" + i + "个数字:");
					int num = scan.nextInt();
					
					//如果输入的数字比max大,就把输入的数字赋值给max
					if(max < num){
						max = num;
					}
				}
				
				System.out.println("最大值为:" + max);
				

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/820910.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号