Java入门——Java执行语句

1.顺序语句

​ 顺序语句:方法里的代码从上往下执行

2.分支语句if 和 switch

分支语句:根据某个条件执行不同的功能

2.1 if

1.简单if分支语句

if(布尔表达式){

…代码块…

}

 Scanner scan = new Scanner(System.in);//案例2:人类的健康值在20-25的数值内为健康(健康值=体重/身高的平方)//输入体重和身高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("护士说:\"您很健康!\"");}

​ if分支语句用于判断

​ 1.if分支可判断区间;

​ 2.if分支可判断复杂的条件

2.if…else…

if(布尔表达式){

…代码块…

}else{

…代码块…

}

 Scanner scan = new Scanner(System.in);//案例2:如果小张考试成绩大于95分,就奖励学生一支钢笔;否则罚他敲代码System.out.println("请输入考试成绩:");double score1 = scan.nextDouble();if(score1>95){System.out.println("奖励小张一支钢笔");}else{System.out.println("惩罚小张敲代码");}

​ if…else…用于二选一

3.else if

if(布尔表达式){

…代码块…

}else if(布尔表达式){

…代码块…

}else if(布尔表达式){

…代码块…

}else{

…代码块…

}

 Scanner scan = new Scanner(System.in);/*案例2:通过键盘录入学生成绩,如果在90-100之间,则打印“A”否则如果在80-90之间,则打印“B”否则如果在70-80之间,则打印“C”否则如果在60-70之间,则打印“D”否则打印“E”*/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…else if…else…用于多选一

计算个人所得税:

import java.util.Scanner;
public class Work04{public static void main(String[] args){/**4.计算个人所得税,关乎大家的生计要求使用程序实现个人所得税计算器,实现从键盘录入当月工资收入,输出应缴个人所得税。工资个税的计算公式为:应纳税额 =(工资薪金所得 - 扣除数)× 适用税率-速算扣除数扣除数标准:个税按3500元/月的起征标准算*/Scanner scan = new Scanner(System.in);System.out.println("请输入您的工资所得:");double salary = scan.nextDouble();double deduction = 8000;//扣除数double taxSalary = salary-deduction;//应上税的工资double taxRate = 0;//税率double quickCalculationDeduction = 0;//速算扣除数double taxPayable = 0;//应纳税额if(taxSalary > 0){if(taxSalary >= 0 && taxSalary<1500){taxRate = 0.03;quickCalculationDeduction = 0;}else if(taxSalary >= 1500 && taxSalary<4500){taxRate = 0.1;quickCalculationDeduction = 105;}else if(taxSalary >= 4500 && taxSalary<9000){taxRate = 0.2;quickCalculationDeduction = 555;}else if(taxSalary >= 9000 && taxSalary<35000){taxRate = 0.25;quickCalculationDeduction = 1005;}else if(taxSalary >= 35000 && taxSalary<55000){taxRate = 0.3;quickCalculationDeduction = 2755;}else if(taxSalary >= 55000 && taxSalary<80000){taxRate = 0.35;quickCalculationDeduction = 5505;}else if(taxSalary >= 80000){taxRate = 0.45;quickCalculationDeduction = 13505;}taxPayable = taxSalary * taxRate - quickCalculationDeduction;System.out.println("您的个人所得税是:" + taxPayable);}else{System.out.println("您的工资不用缴纳个人所得税...");}}
}
4.补充

​ 1.if分支语句是可以嵌套使用的。

​ 2.驼峰命名法:(1)类名:每个单词首字母大写

​ (2)方法名/变量名:除了第一个单词,其余单词首字母都大写

2.2 switch

1.语法结构

switch(表达式){

case 值1:

…代码块…

break;

case 值2:

…代码块…

break;

}

2.对语法结构的理解

​ 1.表达式的结果可以(只能)是:byteshortint枚举(JDK1.5)字符串(JDK1.7)

​ 2.break:表示跳出整个分支语句

​ 3.default:如果都不相等,就执行default语句的代码。

​ 4.用表达式的值分别与值1,值2等比较,哪个相等就执行哪个代码块

​ 5.switch语句一般用于比较单个值是否相等

3.switch经典面试题

​ 1.case的值可以相同吗?

​ 答:不可以相同

​ 2.default可以省略吗?

​ 答: 可以省略

​ 3.break可以省略吗?

​ 答:可以省略

​ 4.default的位置一定要在最后吗?

​ 答:不一定,但为了代码的可读性最好放到最后

​ 5.表达式的类型可以是什么?

​ 答:byte、short、int、枚举(JDK1.5)、字符串(JDK1.7)

​ 补充:表达式的值为什么只有byte、int、short、枚举和字符串?

​ 答:switch底层表达式都是转换成int。byte、short都可以向上转型成int;枚举(JDK1.5)中系统会给每个对应一个int类型的常量值;字符串就是获取的ASCII。

​ 6.case后面的值可以是不同类型的吗?

​ 答:要看是否兼容

​ 7.输入年合月,输出当月的天数

import java.util.Scanner;
public class Interview01{public static void main(String[] args){Scanner scan = new Scanner(System.in);//练习1:输入年和月,输出当月的天数/*1,3,5,7,8,10,12 - 31天4,6,9,11 - 30天2 - 28天或29天闰年:被4整除且不能被100整除 或者 被400整数*/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;}

3.循环语句

循环语句:条件成立,就重复执行某个功能

3.1 for

​ for循环就是重复性做某个功能。

1.语法结构

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

…代码块…

}

​ 表达式1:初始化变量

​ 表达式2:判断条件

​ 表达式3:更新变量

​ 运行步骤:(1)初始化变量;

​ (2)判断条件 —结果必须是boolean类型

​ true:执行代码块,更新变量,再重复第二个步骤

​ false:跳出整个循环语句

 //练习1:打印1~10的数字for(int i = 1;i <= 10;i++){System.out.println(i);}//练习3:打印1~10之间的奇数for(int i = 1;i <= 10;i += 2){System.out.println(i);}//练习4:打印1~10之间的偶数for(int i = 0;i <=10;i +=2){System.out.println(i)}//练习5‘:打印1~10的数字,倒叙打印for(int i = 10;i >= 1;i--){System.out.println(i);}

​ 总结:1.初始化变量不局限于从0开始;

​ 2.更新变量不局限于每次+1;

​ 3.for循环中声明的变量其作用域只能在循环中。

2.for循环面试题
import java.util.Scanner;
/*for循环案例
*/
public class Test08{public static void main(String[] args){Scanner scan = new Scanner(System.in);//案例1:循环录入5次int类型的数字,输出总和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门课成绩,计算平均分double sum1 = 0;for(int i = 1;i <= 5;i++){System.out.println("请输入第" + i + "门成绩:");double score = scan.nextDouble();sum1 += score; }System.out.println("小明同学的平均分是:" + (sum1/5));//案例3:循环录入5次int类型的数字,输出最大值System.out.println("请输入第1个数字:");int max = scan.nextInt();for(int i =2;i  <=5;i++){System.out.println("请输入第" + i +"个数字:");int num = scan.nextInt();if(num>max){max  =num;}}System.out.println("最大值为:" + max);}
}
3.for循环嵌套(重点!!!),打印各种三角形
import java.util.Scanner;
/*for循环嵌套
*/
public class Test09{public static void main(String[] args){/*练习1:打印下列图片****************/for(int i = 0;i < 3;i++){for(int j = 0;j < 5;j++){System.out.print("*");}System.out.println();}/*练习2:打印下列图片****************/for(int i = 0;i<6;i++){for(int j = 0;j<i;j++){System.out.print("*");}System.out.println();}/*面试1:打印下列图片****************/for(int i = 0;i < 5;i++){for(int j = 0;j < 5-i;j++){System.out.print("*");}System.out.println();}/*面试2:打印下列图片****************/for(int i = 0;i < 5;i++){for(int k = 0;k < i;k++){System.out.print(" ");}for(int j = 0;j < 5-i;j++){System.out.print("*");}System.out.println();}/*面试3:打印下列图片****************/for(int i = 0;i < 5;i++){for(int k = 0;k < 5-i;k++){System.out.print(" ");}for(int j = 0;j < i;j++){System.out.print("*");}System.out.println();}/*面试4:打印下列图片*****************/for(int i = 0;i < 4;i++){for(int k = 3;k > i;k--){System.out.print(" ");}for(int j = 0;j < i*2+1;j++){System.out.print("*");}System.out.println();}/*面试5:打印下列图片** **   *********/for(int i = 0;i < 4;i++){for(int k = 3;k > i;k--){System.out.print(" ");}for(int j = 0;j < i*2+1;j++){//第一行 || 最后一行 || 第一列 || 最后一列if(i == 0 || i == 3 || j == 0 || j == i*2+1-1){System.out.print("*");}else{System.out.print(" ");}}System.out.println();}/*面试6:打印下列图片*****************/for(int i = 0;i < 4;i++){for(int k = 0;k < i;k++){System.out.print(" ");}for(int j = 0;j <= 7-i*2-1;j++){System.out.print("*");}System.out.println();}/*面试7:打印下列图片********   ** ***/for(int i = 0;i < 4;i++){for(int k = 0;k < i;k++){System.out.print(" ");}for(int j =0;j < 7-i*2;j++){if(i == 0 || i == 3 || j ==0 || j == 7-2*i-1){System.out.print("*");}else{System.out.print(" ");}}System.out.println();}//九九乘法表1for(int i =1;i <=9;i++){for(int j =1;j <= i;j++){System.out.print(j + "x" + i + "=" + (i*j) + "\t");}System.out.println();}//九九乘法表2for(int i =1;i <=9;i++){for(int k = 1;k < i;k++){System.out.print("\t");}for(int j = i;j <= 9;j++){System.out.print(j + "x" + i + "=" + (i*j) + "\t");}System.out.println();}}
}

3.2 while

1.语法结构

while(布尔表达式){

…代码块…

}

​ 表达式的结果必须是boolean值:true:执行代码块;false:跳出循环语句

2.经典面试题
//案例:我有个梦想,每月存3000,每年递增1000元,多少个月后存满10万double money = 3000;double allMoney = 0;int month = 0;while(allMoney < 100000){allMoney += money;if(month % 12 == 0 && month != 0){money += 1000;}month++;}System.out.println(month + "个月后存满10万" + "\n" + "存满时一个月的工资是:" + money);

3.3do-while

1.语法结构

do{

…代码块…

}while(布尔表达式)

​ 注:do while循环不管你执行多少次,都会率先去执行一次循环体内的代码,再去判断表达式。

​ 表达式的结果必须是boolean值:true:执行代码块;false:跳出整个循环

2.练习代码
Scanner scan = new Scanner(System.in);
String str;do{System.out.println("表现不好!");System.out.println("表现很好!");str =scan.next();
}while(str.equals("不满意"));

3.4 if 、while、do while的区别

1.表达式的区别:

for(初始化变量;判断条件;更新变量){}

while(判断条件){}

do{}while(判断条件)

2.执行顺序的区别

for:先判断,后执行

while:先判断,后执行

do while:先执行一遍,再判断

3.应用场景的区别

循环次数确定时,—>for

循环次数不确定时,先判断再执行 —>while

循环次数不确定时,先执行一次再判断 —>do while

4.特殊的流程控制语句

4.1 break

break:作用于循环中,跳出整个循环

//案例1:循环录入麻生希同学5门课的成绩并计算平均分,如果某分数录入为负,停止录入并提示。double sum = 0;//记录总分boolean flag = true;//true-正确录入 false-录入错误for(int i = 1;i <= 5;i++){System.out.println("请输入第" + i + "门成绩:");double score = scan.nextDouble();if(score < 0){break;}sum += score;}if(flag){System.out.println("平均分为:" + (sum/5));}else{System.out.println("分数为负数,停止录入");}

4.2 continue

continue:作用于循环之中,跳过循环体剩余部分,进入下一次循环.

 //案例1:循环录入Java课5名学生的成绩,统计分数大于等于80分的学生比例。//解决方法1:int num = 0;//统计成绩大于80分的学生的个数for(int i = 1;i <= 5;i++){System.out.println("请输入第" + i + "门成绩:");double score = scan.nextDouble();if(score >= 80){num ++;}}System.out.println("分数大于等于80分的学生比例为:" + (num/5.0)*100 + "%");//解决方法2:int num = 0;//统计成绩大于80分的学生的个数for(int i = 1;i <= 5;i++){System.out.println("请输入第" + i + "门成绩:");double score = scan.nextDouble();if(score < 80){continue;}num ++;}System.out.println("分数大于等于80分的学生比例为:" + (num/5.0)*100 + "%");

4.3 return

return:单独出现时,作用是结束当前方法

4.4 lable

lable:给循环做标记(命名)

1.经典面试题
//经典面试题1:以下代码是否会报错?http://www.baidu.comfor(int i = 0;i < 5;i ++){System.out.println("你是猪吗?");}//不会报错。因为//为注释,http:就是for循环的标记(lable)
//经典面试题2:外层循环5次,内层循环3次,当外层循环到第3次时在内层循环中结束掉外层循环
for(int i = 1;i <= 5;i++){for(int j = 1;j <= 3;j++){System.out.println(i + "--" + j);}
}for(int i = 1;i <= 5;i++){for(int j = 1;j <= 3;j++){System.out.println(i + "--" + j);if(i == 3){break;}}
}
a:for(int i = 1;i <= 5;i++){for(int j = 1;j <= 3;j++){System.out.println(i + "--" + j);if(i == 3){break a;}}
}

5.万年历

​ 万年历:输入一个年份,再输入一个月份,把那个月的日历打印出来

import java.util.Scanner;
/*重点:万年历:输入一个年份,再输入一个月份,把那个月的日历打印出来
*/
public class Test06{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();//计算1900年到输入年的总天数int allDayOfYear = 0;for(int i =1900;i < year;i++){if(i%4 == 0 && i%100 !=0 || i%400 == 0){allDayOfYear += 366;//闰年}else{allDayOfYear += 365;//平年}}//计算1月到输入月的总天数int allDayOfMonth = 0;for(int i = 1;i <month;i++){switch(i){case 1:case 3:case 5:case 7:case 8:case 10:case 12:allDayOfMonth += 31;break;case 4:case 6:case 9:case 11:allDayOfMonth += 30;break;case 2:if(year%4 == 0 && year%100 != 0 || year%400 == 0){allDayOfMonth += 29;}else{allDayOfMonth += 28;}break;}}//计算出总天数int allDay = allDayOfYear + allDayOfMonth;//计算出星期int week = allDay % 7 ;//计算出当月天数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 + "月---");System.out.println("日\t一\t二\t三\t四\t五\t六");int num = 0;//换行计数器for(int i = 1;i <= week;i++){System.out.print("\t");num++;}for(int i =1;i <= day;i++){if(num % 7 == 0){System.out.println();}System.out.print(i + "\t");num++;}}
}

Java入门-Java执行语句相关推荐

  1. Java入门-Java学习路线课程面试篇:取商 / 和取余(模) % 符号的使用

    本博客地址 | GitHub | 更多资源免费下载 取商 / 和取余(模) % 符号的使用 文章目录 1. / % 最容易出错的演示案例 2. 运行结果: 1. / % 最容易出错的演示案例 pack ...

  2. java怎么延迟执行语句_Go语言defer(延迟执行语句)

    Go语言中关键字defer允许我们推迟到函数返回之前(或任意位置执行return语句之后)一刻才执行某个语句或函数(为什么要在返回之后才执行这些语句?因为return语句同样可以包含一些操作,而不是单 ...

  3. java入门-java程序

    前言 java入门系列,自我学习总结,用来记录一些入门简单的知识点和自己的思考总结,不会很详细的进行记录. 参考文档地址:菜鸟教程 参考文档地址:廖雪峰 Java 教程 参考视频笔记:b站尚硅谷 什么 ...

  4. Java入门-Java语言概述

    1.Java语言基本概述 1.1.什么是计算机编程语言 人与人之间是如何沟通的呢?从小父母就教会我们说话,在长期的熏陶和自我学习中,我们就学会了普通话,学会了表达自己的需求,父母收到我们的信号或者听到 ...

  5. java入门---Java 8 新特性之Nashorn JavaScript引擎

        Nashorn 一个 javascript 引擎.从JDK 1.8开始,Nashorn取代Rhino(JDK 1.6, JDK1.7)成为Java的嵌入式JavaScript引擎.Nashor ...

  6. 头歌--Java入门 - Java初体验

    目录 第1关:Java第一课 任务描述 编程要求 测试说明 第2关:JAVA入门测试题

  7. 头歌实践教学平台:Java入门 - Java初体验

    第1关:Java第一课 public class HelloWorld{ /********* Begin *********/ public static void main (String[] a ...

  8. JAVA入门·JAVA开发环境搭建之卸载JDK安装JDK

    JAVA开发环境搭建 卸载JDK 1.删除Java的安装目录 我的电脑--属性--高级系统设置--环境变量--系统变量--JAVA_HOME--Java的安装目录 2.删除JAVA_HOME 3.删除 ...

  9. java入门之基本语句,语法

    一,Random和Scanner Random:生成随机数字 Scanner:扫描器,可以获取用户在控制台输入的信息 Random 的用法: ============================= ...

最新文章

  1. JS异步编程之callback
  2. julia(4)-if ,else
  3. 布尔类型的值包括( )和( )_布尔类型
  4. 基于框架编写驱动代码
  5. 几种经典的hash算法
  6. ubuntu下如何对接斗鱼直播
  7. python判断成语是abac型_ABAC型成语大全
  8. android模拟器可以复制文件,从PC中向Android模拟器中复制文件
  9. 普加.大学生广告创意大赛公告
  10. 基于51单片机的波形发生器
  11. 华为中国生态伙伴大会2019盛大开幕:智能进化 共赢生态未来
  12. 计算机ps图片在哪里看,怎么看图片有没有PS 两种查看照片有没被PS过的方法-电脑教程...
  13. 【雷丁学姐】借助大数据进行学生的学校申请预测
  14. 北京集训队2016 Day4 超级跳
  15. java计算机毕业设计科普网站源码+mysql数据库+系统+lw文档+部署
  16. 二、点亮LED(GPIO控制)
  17. 浏览器下载文件,读取BLOB字段会因为数据太大导致数据库连接connect超时关闭的解决方案...
  18. P3088 [USACO13NOV]Crowded Cows
  19. 创意小发明:单片机制作电容电阻测量仪 (含C语言原源码,仿真文件与实物图)
  20. SVN 代码到Git仓库 只需几步简单粗暴 代码和小乌龟都可以

热门文章

  1. 易班自动打卡+钉钉机器人消息提醒
  2. 3D建模软件大总结,你都知道哪些?
  3. Wordpress站点使用七牛云对象储存以及CDN加速
  4. matlab绘图崩溃,重新采用硬件加速绘图
  5. 基于Simulink的高速跳频通信系统抗干扰性能
  6. createfile调用失败_Java NIO Files.createFile()以NoSuchFileException失败
  7. c语言如何将字符串中的数字提取出来,从含有数字的文本字符串中提取出数字...
  8. VBA提取字符串纯数字的方法
  9. 微软客服的痛苦-还敢应聘微软客服
  10. ubuntu修改ssh端口_在Ubuntu上更改SSH欢迎横幅