JAVA的控制语句

控制语句

分为顺序、选择和循环

顺序结构

先执行a,再执行b

条件判断结构

如果......则.......

循环结构

如果.....则重复执行

条件判断结构(选择结构)

if单分支结构

语法结构:

if(布尔表达式){

语句块

}

注:如果if后不跟花括号{},只能作用域第一条语句。

前言:

Math类的使用

Math.random()用于产生0~1之间的double类型的随机数,但不包括1

int i = (int)(6 * Math.random());   //产生[0,5]之间的随机整数
掷骰子游戏
/*** 掷骰子游戏* 游戏规则:* 1.如果三次的值加起来大于15,则输出 手气不错哦 ^.^* 2.如果三次的值之和10~15之间,输出 手气一般哦 ~.~* 3.如果三次得值之和小于10,输出 手气好差 =.=* */
public class game {public static void main(String[] args){int i =(int) (Math.random() * 6 + 1);int j =(int) (Math.random() * 6 + 1);int k =(int) (Math.random() * 6 + 1);int count = i + j + k;System.out.println("first score: " + i);System.out.println("first score: " + j);System.out.println("first score: " + k);
​if(count > 15){System.out.println("手气不错哦 ^.^,再来一次波!");}if(count >= 10 && count < 15){System.out.println("手气一般哦 ~.~,再接再厉!");}if(count < 10){System.out.println("手气好差 =.=,溜溜球咯~");}System.out.println("今天总得分:" + count);}
}

结果随机:

if-else双分支结构

语法结构:

if(布尔表达式){

语句块1

}else{

语句块2

}

public class TestIf02 {public static void main(String[] args) {double r = 4 * Math.random();double area = 3.14 * r * r;double circle = 2 * Math.PI * r;
​System.out.println("半径:" + r);System.out.println("周长:" + area);System.out.println("面积:" +circle);
​if(area > circle){System.out.println("周长比面积小");}else{System.out.println("周长比面积大");}}
}

if-else与条件运算符效果相似:

       //条件运算符int a = 3 ,b =5;int c = a > b ? a:b;System.out.println(c);//等同于if-else:if(a > b){c = a;}else{c = b;}System.out.println(c);
if-else if-else多分支结构

语法结构:

if(布尔表达式1){

语句块1

}else if(布尔表达式2){

语句块2

}......

else if(布尔表达式n){

语句块n

}else{

......

}

相对于if单分支更简洁方便

年龄判定
/*** 年龄判定* 游戏规则:* 1.15岁以下(不包括15):儿童* 2.15~24:青年* 3.25~44:中年* 4.45~65:中老年* 5.66~90:老年* 6.91~99:老寿星* 7.100~109:百岁老人* 8.110以上:好小汁!!不死神仙!* */
public class TestIf03 {public static void main(String[] args){int age = (int)(100 * Math.random());System.out.println(age);
​if(age < 15){System.out.println("儿童");}else if(age < 25){System.out.println("青年");}else if(age < 44){System.out.println("中年");}else if(age < 65){System.out.println("中老年");}else if(age < 90){System.out.println("老年");}else if (age < 100){System.out.println("老寿星");} else if (age < 109){System.out.println("百岁老人");}else{System.out.println("好小汁!!不死神仙!");}}
​}
​
switch分支结构

语法结构:(多值判断)

switch(表达式){

case 值1:

语句块1;

break;

case 值2:

语句块2;

break;

.............

default:

默认语句块;

}

注:

  • switch会根据表达式的值从相匹配的case标签处开始执行,一直执行到break处或switch的末尾,如果表达式的值与任一case值不匹配,则进入default语句

  • switch中表达式的值是int(byte、short、char都可,long不行)、枚举、字符串

随机年级
//switch实现:
public class TestSwitch {public static void main(String[] args) {int grade = (int)(Math.random() * 4);switch (grade){case 1:System.out.println("大一");break;case 2:System.out.println("大二");break;case 3:System.out.println("大三");break;default:System.out.println("大四");break; //可写可不写}}
}
​
//if-else if实现:if (grade == 1){System.out.println("大一");} else if (grade == 2) {System.out.println("大二");} else if (grade == 3) {System.out.println("大三");}else {System.out.println("大四");}
判断月份属于某个季节
public class TestSwitch01 {public static void main(String[] args) {int month = (int)(Math.random() * 12 +1);//if-else if实现if(month == 3 || month == 4 || month == 5){System.out.println("春天来咯~ ^.^");} else if (month == 6 || month == 7 || month == 8) {System.out.println("是夏天!( •̀ ω •́ )!");} else if (month == 9 || month == 10 || month == 11) {System.out.println("好冷>.<,冬天到了");} else {System.out.println("秋天,看枫叶🍁");}
​//switch实现:switch (month){case 3:case 4:case 5:System.out.println("春天来咯~ ^.^");break;case 6:case 7:case 8:System.out.println("是夏天!( •̀ ω •́ )!");break;case 9:case 10:case 11:System.out.println("好冷>.<,冬天到了");break;default:System.out.println("秋天,看枫叶🍁");break;}}
}

循环结构
  • 当型:当布尔表达式为true时,反复执行语句,为false才停止执行,eg: while和for循环

  • 直到型:先执行某语句,再判断布尔表达式,为true再执行,反复执行,知道布尔表达式条件为false才停止循环,eg: do-while循环

while循环

语法结构:

while(布尔表达式){

循环体;

}

  • 在循环刚开始时,会计算一次"布尔表达式的"的值,条件为真,执行循环体,对于后来每一次额外的循环,都会在开始前重新计算一次

  • 语句中应有使循环趋向于结束的语句,否则会无限循环---"死循环"

  //求累加和:从1加到100int b = 1;int sum = 0;while(b < 101){sum += b;b++;}System.out.println(sum);
for循环

语法结构:

for(初始表达式;布尔表达式;迭代因子){

循环体;

}

  • 初始化部分设置:循环变量的初值

  • 条件判断部分:布尔表达式

  • 迭代因子:控制循环变量的增减

求累加和
public class TestFor {public static void main(String[] args) {for(int a = 0;a < 6;a++){System.out.println("I Love U!❤");}int sum = 0;for(int n = 0;n <= 100;n++){sum = sum +n;}System.out.println(sum);// 输出9~0之间的数for(int b = 9;b >= 0;b--){System.out.println(b + "\t");}System.out.println(); // 换行// 输出90~1之间能被3整除的数for(int c = 90;c >=0;c--){if(c % 3 == 0){System.out.println(c + "\t");}}}
}
do-while循环

语法结构:

do{

循环体;

}while(布尔表达式);

先执行再判断

求累加和
public class TestDoWhile {public static void main(String[] args) {int i = 0;int sum = 0;do{sum += i;i++;}while(i < 101);  //注意分号不能省略System.out.println(sum);}
}
while与do-while的区别

while:先判断再执行

do-while:先执行再判断,循环体至少被执行一次

练习1
  • 求100以内总数和及奇偶数之和

public class TestOddEven {public static void main(String[] args) {int sum = 0;int oddsum = 0;int evensum = 0;for(int i = 0;i <= 100;i++){sum += i;if(i % 2 == 0){evensum += i;}else{oddsum += i;}}System.out.println(sum);System.out.println(oddsum);System.out.println(evensum);// while循环int i = 0;int sum2 = 0;int oddSum = 0;int evenSum = 0;while(i <= 100){sum2 += i;if(i % 2 == 0){evenSum += i;}else{oddSum += i;}i++;}System.out.println(sum2);System.out.println(oddSum);System.out.println(evenSum);}
}
练习2
  • 使用while/for循环0~130之间的数字,每行显示5个数字

public class TestDisplay {public static void main(String[] args) {// while 循环实现int n = 0;int count = 0;while(n <= 130){// 换行实现if(n % 5 == 0){System.out.println();}System.out.print(n + "\t");n++;// 计数器实现System.out.print(n);count ++;if(count == 5) {System.out.println();count = 0;}n++;}// for循环实现for(int a = 0;a <= 130;a++){if(a % 5 == 0){System.out.println();}System.out.print(a + "\t");}}
}
嵌套循环

循环语句内部,再写一个或多个循环,称为循环嵌套。一般是两层

练习3

打印多行,第一行对应的数字为1,第2行为2.....以此类推

public class TestLoop {public static void main(String[] args) {for(int a = 0;a <= 5;a++) {for (int i = 1; i <= 5; i++) {System.out.print(a + "\t");}System.out.println();}}
}

练习4

使用嵌套打印九九乘法表

 for(int b = 1;b <= 9;b++) {for (int i = 1; i <= b; i++) {System.out.print(i + "*" + b + "=" + (i * b) + "\t"); // System.out.print(i + "*" + b + "=" + (i * b < 10 ?" "+(i * b):i * b) + "\t");// (i * b < 10 ?" "+(i * b):i * b) 个位数时在前面加一个空格,否则不加}System.out.println();}

练习5

使用嵌套循环输出五行*,一行5个

public class PrintStar {public static void main(String[] args) {for(int b = 0;b < 5;b++) {for (int i = 0; i < 5; i++) {System.out.print("*" + "\t");}System.out.println();}}
}

练习6

使用嵌套循环交替打印"#"、"*",一行5个

public class PrintStar02 {public static void main(String[] args) {// 循环嵌套实现for (int b = 0; b < 5; b++) {for (int i = 0; i < 5; i++) {if ((b + i) % 2 == 0) {System.out.print("*" + "\t");} else {System.out.print("#" + "\t");}}System.out.println();}// 计数器实现int counter = 0; // 计数器,用于交替打印字符for (int i = 0; i < 5; i++) { // 外层循环,控制行数for (int j = 0; j < 5; j++) { // 内层循环,控制每行的字符数if (counter % 2 == 0) {System.out.print("*\t"); // 当计数器为偶数时打印*} else {System.out.print("#\t"); // 当计数器为奇数时打印#}counter++; // 每次打印一个字符后,计数器加1}System.out.println(); // 每打印完一行后换行}}
}

break语句和continue语句
  • break用于强制退出整个循环

  • continue用于结束本次循环,继续下一次

练习7

产生100以内的随机数,直到随机数为99时停止

public class TestBreak {public static void main(String[] args) {int total = 0;  // 循环的总次数while(true) {total ++;int n = (int) (Math.random() * 101);System.out.println(n);if(n == 99) {break;}}System.out.print("循环次数:"+total);}
}

练习8

输出100~150内不能被3整除的数,且每行输出5个

public class TestContinue {public static void main(String[] args) {int count = 0;for(int n = 100;n <= 150;n++) {
/*		if(n % 3 != 0){System.out.print(n+"\t");}*/// continue:if(n % 3 == 0){continue;}System.out.print(n+"\t");count++;if(count == 5){System.out.println();count = 0;}}}}

带标签的continue语句
练习9

控制嵌套循环跳转(打印101~150之间所有的质数)

public class TestContinueLabel {public static void main(String[] args) {outer:for(int n = 101;n <= 150;n++){for(int i = 2; i < n;i++){if(n % i == 0){   // 余数为0就不用算,它不是质数continue outer; // 符合某条件,跳到外部循环继续}}System.out.print(n+"\t");}}
}

年薪计算器
  • 通过键盘输入用户的月薪,每年是几个月薪水

  • 输出用户的薪水

  • 输出一行字:"如果年薪超过10万,恭喜你超越90%的人!",如果年薪超过20万,"恭喜你超过98%的人!"

  • 直到键盘输入数字88,退出程序(break实现)

  • 键盘输入66,则这个用户退出计算不显示"恭喜...",直接显示"重新开计算...",然后计算下一个用户的年薪

import java.util.Scanner;public class SalaryCalculate {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.println("**********年薪计算器***********");System.out.println("·输入88退出程序\n·输入66,计算下一位年薪\n");while(true){System.out.println("请输入您的月薪:");long salary = scanner.nextInt();System.out.println("请输入您的月份:");int month = scanner.nextInt();long yearSalary = salary * month;System.out.println("您的年薪是:" + yearSalary);if(yearSalary >= 200000){System.out.println("恭喜你超越98%的人!");}else if(yearSalary >= 100000){System.out.println("恭喜你超越90%的人!");}else{System.out.println("要加油啦!!");}System.out.println("输入88退出系统,输入66继续计算!");int command = scanner.nextInt();if(command == 88){System.out.println("系统退出!");break;}else if(command == 66){System.out.println("重新开始计算年薪");continue;}}}
}
个税计算器
  • 通过键盘输入用户的月薪

  • 百度搜索个税计算方式,计算出应缴纳的税款

  • 直到键盘输入88,退出程序

级数应纳税所得额税率(%)速算扣除数
1不超过3000元的部分30
23000~12000的部分10210
312000~25000的部分201410
425000~35000的部分252660
535000~55000的部分304410
655000~80000的部分357160
7超过80000的部分4515160

import java.util.Scanner;
​
public class TaxCalculate {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.println("***********个税计算器**********");System.out.println("输入88退出程序");
​while(true){System.out.println("请输入您的月薪:");double monthSalary = scanner.nextDouble();double jiaoTax = monthSalary - 5000;double taxRate = 0;
​if(monthSalary < 5000){System.out.println("个税起征点为5000,您不需要交税!");}else if(jiaoTax <= 3000){taxRate = jiaoTax * 0.03;monthSalary = monthSalary - taxRate;}else if(jiaoTax > 3000 && jiaoTax <= 12000){taxRate = jiaoTax * 0.1 - 210;monthSalary = monthSalary - taxRate;}else if(jiaoTax > 12000 && jiaoTax <= 25000){taxRate = jiaoTax * 0.2 - 1410;monthSalary = monthSalary - taxRate;}else if(jiaoTax > 25000 && jiaoTax <= 35000){taxRate = jiaoTax * 0.25 - 2660;monthSalary = monthSalary - taxRate;}else if(jiaoTax > 35000 && jiaoTax <= 55000){taxRate = jiaoTax * 0.3 - 4410;monthSalary = monthSalary - taxRate;}else if(jiaoTax > 55000 && jiaoTax <= 80000){taxRate = jiaoTax * 0.35 - 7610;monthSalary = monthSalary - taxRate;}else{taxRate = jiaoTax * 0.45 - 15160;monthSalary = monthSalary - taxRate;}System.out.println("个人应纳所得税:" + taxRate);System.out.println("您的月工资最终是:" + monthSalary);
​System.out.println("输入88退出程序.\n输入66继续计算下一位个税及月工资");int command = scanner.nextInt();if(command == 88){System.out.println("程序终止!");break;}else if(command == 66){System.out.println("请继续输入您的月薪:");continue;}}}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/573705.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Java程序员福音】国外Java 程序员开发常用的工具(全)

Java是一门开源语言&#xff0c;所以可以选择的开发环境很多&#xff0c;你适合哪一个呢&#xff1f;整理了一些Java程序员开发常用的工具&#xff0c;需要的同学可以收藏。 1、免费开源Eclipse Eclipse最初是由IBM公司开发的替代商业软件Visual Age for Java的下一代IDE开发环…

安静:内向性格的竞争力 - 三余书屋 3ysw.net

精读文稿 这期我们介绍的这本书叫做《安静》&#xff0c;副标题是《内向性格的竞争力》。本书共有267页&#xff0c;我会用大约25分钟的时间为你讲述书中的精髓。内向性格具备什么样的竞争力&#xff1f;内向性格的人在人际交往和日常生活中似乎总是吃亏&#xff0c;因为他们不…

汉化必备工具 Poedit Pro 翻译编辑器

特色功能 简单易用的界面&#xff1a; Poedit的界面简洁直观&#xff0c;没有复杂的选项和设置。它专注于提供最基本的翻译编辑功能&#xff0c;使得用户能够快速上手并高效完成翻译工作。多种文件格式支持&#xff1a; Poedit支持多种常见的翻译文件格式&#xff0c;包括Gett…

JAVA WEB 能够实现整个文件夹的上传下载吗?

导入项目&#xff1a; 导入到Eclipse&#xff1a;导入项目 导入到IDEA&#xff1a;导入项目 springboot统一配置&#xff1a;springboot-配置 下载示例&#xff1a; https://gitee.com/xproer/up6-jsp-eclipse/tree/6.5.40/ 工程 NOSQL NOSQL示例不需要任何配置&#xff0c;可…

Jenkins升级中的小问题

文章目录 使用固定版本安装根据jenkins页面下载war包升级jenkins重启jenkins报错问题解决 K8s部署过程中的一些小问题 ##### Jenkins版本小插曲 ​ 在Jenkins环境进行插件安装时全部清一色飘红&#xff0c;发现是因为Jenkins版本过低导致&#xff0c;报错的位置可以找到更新je…

vue纯前端过滤嵌套数据,通过关键字搜索过滤嵌套数据

1.过滤效果&#xff1a; 2. cardList 数据源&#xff1a; [ { "id": 4, "createTime": "2024-03-28 02:47:18", "updateTime": "2024-03-28 02:47:18", "uniqueId": "…

python实战之基础篇(一)

1. 注释 # coding utf-8 # 该注释放到文件第一行, 这个注释告诉python解释器该文件的编码集是UTF-82. 导入语句有三种形式 import <模块名> from <模块名> import <代码元素> from <模块名> import <代码元素> as <代码元素别名>3. 获取…

FPGA时钟资源详解(1)——时钟Buffer的选择

FPGA时钟系列文章总览&#xff1a;FPGA原理与结构&#xff08;14&#xff09;——时钟资源https://ztzhang.blog.csdn.net/article/details/132307564 目录 一、概述 二、时钟Buffer的选择 2.1 BUFG 2.2 BUFR 和 BUFIO 2.2.1 源同步接口的支持 2.2.2 扩展时钟域…

unity双层滑动实现

实现功能&#xff1a; 当滑动列表中内容处于顶端的时候&#xff0c;向上滑动优先滑动整个滑动列表&#xff0c;当滑动列表移动到设置位置&#xff0c;即设定的最高处时&#xff0c;继续移动列表内内容。向下移动亦然&#xff0c;当内容处于滑动列表顶端时&#xff0c;移动整个滑…

【面试经典150 | 动态规划】零钱兑换

文章目录 Tag题目来源解题思路方法一&#xff1a;动态规划 写在最后 Tag 【动态规划】【数组】 题目来源 322. 零钱兑换 解题思路 方法一&#xff1a;动态规划 定义状态 dp[i] 表示凑成总金额的最少硬币个数。 状态转移 从小到大枚举要凑成的金额 i&#xff0c;如果当前…

康耐视visionpro-CogAcqFifoTool工具详细说明

CogAcqFifoTool操作说明&#xff1a; ① 打开工具栏&#xff0c;双击或点击鼠标拖拽 添加CogAcqFifoTool ②.从图片采集设备/图像采集卡列表里选择对应的相机&#xff0c;视频格式选择图像格式。 Mono表示黑白图像&#xff0c;RGB表示彩色相机。点击初始化取相初始化相机。 ③…

PCL 彩色点云RGB转灰度并显示

目录 一、算法原理1、原理概述2、参考文献二、代码实现三、结果展示本文由CSDN点云侠原创,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫与GPT。 一、算法原理 1、原理概述 不同要素之间的灰度差异较为明显。点云灰度值与RGB属性的关系为: