# 流程控制练习题

# 一、编程题

1、实现一个课程名称和课程代号的转换器:输入下表中的课程代号,输出课程的名称。用户可以循环进行输入,如果输入0就退出系统。(**使用****switch +while****循环实现**)

**课程名称和课程代号对照表**

| **课程名称** | **课程代码** |
| ---------------------------- | ------------ |
| 使用Java语言理解程序逻辑 | **1** |
| 使用HTML语言开发商业站点 | **2** |
| 使用SQL Server管理和查询数据 | **3** |
| 使用C#开发数据库应用程序 | **4** |

~~~java
public class Demo1 {
public static void main(String[] args) {
//1.创建扫描仪对象
Scanner input = new Scanner(System.in);
//2.循环让客户输入课程编号
tag:while(true){
//3.接收客户输入的课程代号
System.out.println("请输入课程代号:");
int number = input.nextInt();
switch (number){
case 1 :
System.out.println("使用Java语言理解程序逻辑");
break;
case 2 :
System.out.println("使用HTML语言开发商业站点");
break;
case 3 :
System.out.println("使用SQL Server管理和查询数据");
break;
case 4 :
System.out.println("使用C#开发数据库应用程序");
break;
case 0 :
break tag;
}
}
}
}
~~~

2、本金10000元存入银行,年利率是千分之三。每过1年,将本金和利息相加作为新的本金。计算5年后,获得的本金是多少?(**使用for循环实现**)

~~~Java
public class Demo2 {
public static void main(String[] args) {
double benJin = 10000;
for(int i=1;i<=5;i++){
benJin=benJin+benJin*0.003;
}
System.out.println(benJin);
}
}
~~~

3、求整数1~100的累加值,但要求跳过所有个位为3的数。(**使用for循环实现**)

~~~Java
/**
* 3、求整数1~100的累加值,但要求跳过所有个位为3的数。(使用for循环实现)
*/
public class Demo3 {
public static void main(String[] args) {
int sum = 0;
for (int i = 1; i <=100 ; i++) {
if(i%10==3){
continue;
}
sum+=i;
}
System.out.println(sum);
}
}
~~~

4、输入一个正整数N,判断该数是不是质数,如果是质数输出“N是一个质数”,否则输出“N不是质数”。提示:质数的含义:除了1和它本身不能被任何数整除。(**使用for循环实现**)

~~~java
public class Demo4 {
public static void main(String[] args) {
//1.创建扫描仪对象
Scanner scanner = new Scanner(System.in);
while (true) {
//2.请输入一个正整数
System.out.println("请输入一个正整数");
int number = scanner.nextInt();
if(number==1){
System.out.println(number+"不是质数");
} else if(number==2){
System.out.println(number+"是质数");
} else {
//默认number是质数
boolean tag = true;
//将number 除以2到number之间的数,不包含number如果有一次整除,那么number不是质数
for(int i=2;i<number;i++){
if(number%i==0){
tag=false;
}
}
if(tag){
System.out.println(number+"是质数");
} else {
System.out.println(number+"不是质数");
}
}
}

}
}
~~~

5、输入一个正整数,将该数的各位左右反转输出,即输入123,输出321。(**使用while循环实现**)

~~~Java
public class Demo5 {
public static void main(String[] args) {
//创建扫描仪对象
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个正整数");
int number = scanner.nextInt();
// 反转数字
while(number>0){
int a = number%10;
System.out.print(a);
number = number/10;
}
}
}
~~~

6、打印出100~999之间的所有“水仙花数”。所谓“水仙花数”,是指一个3位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=13+53+33。

~~~java
public class Demo6 {
public static void main(String[] args) {
for (int i = 100; i <=999 ; i++) {
int bai = i/100;
int shi = i/10%10;
int ge = i%10;
if(i==bai*bai*bai+shi*shi*shi+ge*ge*ge){
System.out.println(i+"是一个水仙花数");
}
}
}
}
~~~

7、幸运猜猜猜:游戏随机给出一个0~99(包括0和99)的数字,然后让你猜是什么数字。你可以随便猜一个数字,游戏会提示太大还是太小,从而缩小结果范围。经过几次猜测与提示后,最终推出答案。在游戏过程中,记录你最终猜对时所需要的次数,游戏结束后公布结果。

积分对照表

| **次数** | **结果** |
| -------- | -------------------------------------- |
| 1 | 你太有才了! |
| 2~6 | 这么快就猜出来了,很聪明么! |
| 大于7 | 猜了半天才猜出来,小同志,尚需努力啊! |

猜测次数最多20次。

提示:

(1) 产生0~99之间的随机数字:

int number = (int)(Math.random()*100)

(2) 使用for循环结构,其中循环计数器counter同时也记录你猜测的次数

(3) 计算积分可以使用switch结构

~~~java
public class Demo7 {
public static void main(String[] args) {
//创建扫描仪对象
Scanner input = new Scanner(System.in);
//获得本次要猜的随机数
int number = (int)(Math.random()*100);
System.out.println("number:"+number);
//猜数的计数器
int count = 0;
//记录是否猜数成功
boolean tag = true;
while(true){
//接收客户猜的数
System.out.println("猜猜看吧");
int n = input.nextInt();
//记录猜数次数
count++;
//判断猜数结果
if(n>number){
System.out.println("猜大了");
//设置条件最多猜20次
if(count==20){
tag = false;
break;
}
}else if(n<number){
System.out.println("猜小了");
//设置条件最多猜20次
if(count==20){
tag = false;
break;
}
} else {
System.out.println("猜对了");
//设置条件最多猜20次
if(count==20){
break;
}
break;
}

}
if(tag){
switch (count){
case 1 :
System.out.println("你太有才了!");
break;
case 2 :
case 3 :
case 4 :
case 5 :
case 6 :
System.out.println("这么快就猜出来了,很聪明么!");
break;
default :
System.out.println("猜了半天才猜出来,小同志,尚需努力啊!");
break;
}
}
}
}
~~~

# 二、简答题

1、请简述continue和break的区别;

2、switch结构可以传入哪些参数类型;

3、if和switch结构的区别;

4、while和dowhile的区别;

day03_3_流程控制练习题的更多相关文章

  1. 二、Python流程控制练习题

    一.分支结构-if等 练习题: 练习1:英制单位与公制单位互换 练习2:掷骰子决定做什么 练习3:百分制成绩转等级制 练习4:输入三条边长如果能构成三角形就计算周长和面积 练习5:个人所得税计算器 练 ...

  2. Python【第一篇】python安装、pip基本用法、变量、输入输出、流程控制、循环

    一.python安装 Ubuntu下 系统版本已经同时安装了python2和python3 如果没有python3,可以参考这个貌似是印度阿三的安装视频:http://v.youku.com/v_sh ...

  3. 函数的if--while流程控制

    一.流程控制---if 1.if条件判断 age=18 hight=1.70 sex="female" is_beautiful=True if sex=="female ...

  4. java 基础one ---运算符and流程控制

    首先java这个了解下java的基础 首先java文件都是以.java结尾的  然后 他所有的内容都是有一个入口的就是放在了public static void main(String [] args ...

  5. Python(四)之Python流程控制(if、while、for)

    Python流程控制 if测试: if 条件测试表达式: 组合条件测试: x and y:与运算 x or y:或运算 not x:非运算 while: break:跳出最内层的循环 continue ...

  6. shell(三)if流程控制

    流程控制 if 流程控制 基本语法 单分支结构 if [];then fi 两分支结构 if [];then else fi 多分支结构 if [];then elif[];then elif[];t ...

  7. python基础流程控制

    流程控制主要分为三大类: 1.if 判断语句 2.while 循坏语句 3.for 循坏语句 下面以举例说明: if 判断语句: user1 = 'seven' user2 = 'alex' pass ...

  8. Go语言( 流程控制)

    流程控制是每种编程语言控制逻辑走向和执行次序的重要部分,流程控制可以说是一门语言的“经脉”. Go语言中最常用的流程控制有if和for,而switch和goto主要是为了简化代码.降低重复代码而生的结 ...

  9. python基础之流程控制

    流程控制之----if 流程控制,是指程序在运行时,个别的指令(或者是陈述.子程序)运行或者求值的顺序.人生道路上的岔口有很多,在每个路口都是一个选择,在每个路口加上一个标签,选择哪个就是满足哪个条件 ...

随机推荐

  1. Linux下安装部署NodeJS完整步骤

    关注「开源Linux」,选择"设为星标" 回复「学习」,有我为您特别筛选的学习资料~ NodeJS是一个开源,跨平台,轻量级的JavaScript运行时环境,可用于构建可扩展的网络 ...

  2. 详解六大国产CPU处理器

    一个执着于技术的公众号 CPU作为计算机设备的运算和控制核心,负责指令读取.译码与执行,因研发门槛高.生态构建难,被认为是集成电路产业中的"珠穆朗玛峰". 纵观全球,Intel.A ...

  3. vuepress搭建UI组件库文档踩坑篇

    为了实现组件效果预览及代码展示可折叠功能,使用了插件vuepress-plugin-demo-container 相关配置可参考官网说明文档 第一步 安装插件 npm i - D vuepress-p ...

  4. Docker将镜像文件发布到阿里云

    一.创建新镜像文件 1.创建容器并在容器内创建一个文件夹 在容器内创建一个新文件主要是为了代表这个容器非镜像文件直接创建的容器,而是通过自定义在容器内创建了属于自己的文件 2.提交容器副本使之成为一个 ...

  5. HamsterBear Linux Low Res ADC按键驱动的适配 + LVGL button移植

    HamsterBear lradc按键驱动的适配 平台 - F1C200s Linux版本 - 5.17.2 ADC按键 - 4 KEY tablet 驱动程序位于主线内核: drivers/inpu ...

  6. 【mq】从零开始实现 mq-08-配置优化 fluent

    前景回顾 [mq]从零开始实现 mq-01-生产者.消费者启动 [mq]从零开始实现 mq-02-如何实现生产者调用消费者? [mq]从零开始实现 mq-03-引入 broker 中间人 [mq]从零 ...

  7. Blazor和Vue对比学习(基础1.5):双向绑定

    这章我们来学习,现代前端框架中最精彩的一部分,双向绑定.除了掌握原生HTML标签的双向绑定使用,我们还要在一个自定义的组件上,手撸实现双向绑定.双向绑定,是前两章知识点的一个综合运用(父传子.子传父) ...

  8. HCNP Routing&Switching之RSTP保护

    前文我们了解了RSTP相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/16240348.html:今天我们来聊一聊RSTP保护相关话题: 我们知道RST ...

  9. flask配置文件、路由设置、模板语法、请求与响应、session使用、闪现功能(flash)

    今日内容概要 flask 配置文件 flask 路由系统 flask模板语法 请求与相应 session 闪现(flash翻译过来的) 内容详细 1.flask 配置文件 # django ---&g ...

  10. unity---射线

    射线 Ray ray= Camera.main.ScreenPointToRay(Input.mousePosition);//获得鼠标射向的射线 RaycastHit hit;//射线碰撞物体 if ...