Java入门-Java执行语句
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.表达式的结果可以(只能)是:byte、short、int、枚举(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执行语句相关推荐
- Java入门-Java学习路线课程面试篇:取商 / 和取余(模) % 符号的使用
本博客地址 | GitHub | 更多资源免费下载 取商 / 和取余(模) % 符号的使用 文章目录 1. / % 最容易出错的演示案例 2. 运行结果: 1. / % 最容易出错的演示案例 pack ...
- java怎么延迟执行语句_Go语言defer(延迟执行语句)
Go语言中关键字defer允许我们推迟到函数返回之前(或任意位置执行return语句之后)一刻才执行某个语句或函数(为什么要在返回之后才执行这些语句?因为return语句同样可以包含一些操作,而不是单 ...
- java入门-java程序
前言 java入门系列,自我学习总结,用来记录一些入门简单的知识点和自己的思考总结,不会很详细的进行记录. 参考文档地址:菜鸟教程 参考文档地址:廖雪峰 Java 教程 参考视频笔记:b站尚硅谷 什么 ...
- Java入门-Java语言概述
1.Java语言基本概述 1.1.什么是计算机编程语言 人与人之间是如何沟通的呢?从小父母就教会我们说话,在长期的熏陶和自我学习中,我们就学会了普通话,学会了表达自己的需求,父母收到我们的信号或者听到 ...
- java入门---Java 8 新特性之Nashorn JavaScript引擎
Nashorn 一个 javascript 引擎.从JDK 1.8开始,Nashorn取代Rhino(JDK 1.6, JDK1.7)成为Java的嵌入式JavaScript引擎.Nashor ...
- 头歌--Java入门 - Java初体验
目录 第1关:Java第一课 任务描述 编程要求 测试说明 第2关:JAVA入门测试题
- 头歌实践教学平台:Java入门 - Java初体验
第1关:Java第一课 public class HelloWorld{ /********* Begin *********/ public static void main (String[] a ...
- JAVA入门·JAVA开发环境搭建之卸载JDK安装JDK
JAVA开发环境搭建 卸载JDK 1.删除Java的安装目录 我的电脑--属性--高级系统设置--环境变量--系统变量--JAVA_HOME--Java的安装目录 2.删除JAVA_HOME 3.删除 ...
- java入门之基本语句,语法
一,Random和Scanner Random:生成随机数字 Scanner:扫描器,可以获取用户在控制台输入的信息 Random 的用法: ============================= ...
最新文章
- JS异步编程之callback
- julia(4)-if ,else
- 布尔类型的值包括( )和( )_布尔类型
- 基于框架编写驱动代码
- 几种经典的hash算法
- ubuntu下如何对接斗鱼直播
- python判断成语是abac型_ABAC型成语大全
- android模拟器可以复制文件,从PC中向Android模拟器中复制文件
- 普加.大学生广告创意大赛公告
- 基于51单片机的波形发生器
- 华为中国生态伙伴大会2019盛大开幕:智能进化 共赢生态未来
- 计算机ps图片在哪里看,怎么看图片有没有PS 两种查看照片有没被PS过的方法-电脑教程...
- 【雷丁学姐】借助大数据进行学生的学校申请预测
- 北京集训队2016 Day4 超级跳
- java计算机毕业设计科普网站源码+mysql数据库+系统+lw文档+部署
- 二、点亮LED(GPIO控制)
- 浏览器下载文件,读取BLOB字段会因为数据太大导致数据库连接connect超时关闭的解决方案...
- P3088 [USACO13NOV]Crowded Cows
- 创意小发明:单片机制作电容电阻测量仪 (含C语言原源码,仿真文件与实物图)
- SVN 代码到Git仓库 只需几步简单粗暴 代码和小乌龟都可以
热门文章
- 易班自动打卡+钉钉机器人消息提醒
- 3D建模软件大总结,你都知道哪些?
- Wordpress站点使用七牛云对象储存以及CDN加速
- matlab绘图崩溃,重新采用硬件加速绘图
- 基于Simulink的高速跳频通信系统抗干扰性能
- createfile调用失败_Java NIO Files.createFile()以NoSuchFileException失败
- c语言如何将字符串中的数字提取出来,从含有数字的文本字符串中提取出数字...
- VBA提取字符串纯数字的方法
- 微软客服的痛苦-还敢应聘微软客服
- ubuntu修改ssh端口_在Ubuntu上更改SSH欢迎横幅