C#编程—第四天
五一放假三天
······续写第三天的if else-if、if语句的嵌套、很多例题(还有很多没有整理好的)
5.4下午初步学习循环语句for 老师布置了几个小练习题
循环语句
循环:可以反复执行某段代码,直到不满足循环条件为止。
循环的四要素:初始条件、循环条件、状态改变、循环体
1、初始条件:循环最开始的状态
2、循环条件:在什么条件下进行循环,不满足此条件,则循环终止。
3、状态改变:改变循环变量值,最终不满足循环条件,从而停止循环。
4、循环体:要反复执行的部分。
#程序调试#
1、写完一段程序后,想看下这段程序的执行过程。
2、当你写完这段程序后,发现程序并没有按照你想象的样子去执行。
调试方法:
1、F11逐语句调试(单步调试)
2、F10逐过程调试
3、断点调试:找到断点要设置断点的代码在代码左侧灰色条处点击鼠标左键。或者,选中代码,按F9设置断点
for 循环:
语法:
for (表达式1;表达式2;表达式3)
{
循环体;
}
输入方式:打完for紧接着按两下Tab
表达式1:一般为声明的循环变量,记录循环的次数(int i=0;)
表达式2:一般为循环条件(i<10)
表达式3:一般为改变循环条件的代码,使循环条件终有一天不再成立(i++)
执行过程:程序首先执行表达式1,声明了一个循环变量用来记录循环的次数,然后执行表达式2,判断循环条件是否成立,如果表达式2返回的结果为true,则执行循环体,当执行完循环体后,执行表达式3,然后执行表达式2继续判断循环条件是否成立,如果成立则继续执行循环体,如果不成立则跳出for循环。
forr + 两下tab :逆向for循环
水仙花数:百位的立方+十位的立方+个位的立方==当前这个百位数
例如:1+5^3+3^3==153
for 循环的嵌套:可以做99乘法表
当遇到某个事情要做一遍,而另外一个事情要做n遍的时候,就要用到for循环嵌套
for 循环用来解决两大类问题:穷举、迭代
for 穷举法
用循环把各种可能的情况都走一遍,然后用if条件把满足要求的结果给筛选出来。
例如:
1、找100以内的与7有关的数
2、小明单位发了一百元的购物卡,他到超市买洗化用品,一是洗发水(15元),二是香皂(2元),三是牙刷(5元)怎么可以正好把一百元花完。
3、公鸡两文钱一只,母鸡一文钱椅子,小鸡半文钱一只,花100文钱买100只鸡,该如何购买?
4、大马驮2石粮食,中马驮1石粮食,两头小马驮一旦粮食,要用100匹马,驮100石粮食,该如何调配
5、有一分钱、两分钱、五分钱硬币,要组合出两角有哪些组合方法。
6、侦察兵A和B两人中至少去一人;
A和D不能一起去;
A、E和F三人中要派两人去;
B和C都去或都不去; 注释:
C和D两人中去一个;
若D不去,则E也不去。
问应当让哪几个人去?
for 迭代法
有一定规律,从初始情况按照规律不断求解中间情况,最终推导出结果。
例如:
1、100以内所有整数的和 2、公园里有一只猴子和一堆桃子,猴子每天吃掉桃子总数的一半,把剩下一半中扔掉一个坏的。到第七天的时候,猴子睁开眼发现只剩下一个桃子。问公园里刚开始有多少个桃子?
3、五个小朋友排成一队。问第一个多大了,第一个说比第二个大两岁,问第二个,第二个说比第三个大两岁,以此类推。问第五个小朋友几岁了,第五个小朋友说3岁了。问第一个小朋友几岁?
4、一张纸厚度是0.07毫米,假设这张纸可以限次对折,问对折几次可以超过珠峰?8848米
5、国际象棋64格。堆米。问第64个格上会放多少粒米?
例题:
/*
(一)100以内与7相关的数。
1.从1一直找到100
2.对每个数判断是否满足以下条件之一
能被7整除 a%7==0
个位是7 a%10 == 7
十位是7 a/10==7
(二)简陋的彩票生成器。
(三)求100以内所有数的和。
*/ for (int i = ; i <= ; i++)
{
if (i % == || i % == || i / == )
console.write(i + "\t");
} random r=new random();//随机数生成器 for (int i = ; i < ; i++)//for循环
{
int a = r.next();//声明a来接受生成的随机数 随机数范围100以内
console.write(a+"\t");//不换行输出生成的随机数并且用tab分开,for每循环一次输出一个,直到循环条件不成立。
} int sum = ;//声明一个int变量 赋初值0
for (int i = ; i <= ; i++)
{
sum = sum + i;//求100以内整数相加的和 console.write(sum+"\t");//循环内效果
} console.writeline("\n\n\n\t\v"+sum);//循环外效果 int sum = ;
for (int i = ; i <= ; i++)
{
if ((i - ) % == )
{
sum = sum + i;
}
}
console.writeline(sum); int sum = ;
for (int i = ; i <= ; i+=)//i+=2 => i=i+2 偶数
{ //console.write(i + "\t");
console.write(i + "\t");
sum = sum + i;
}
console.writeline(sum);//100以内偶数之和
预习:while
(当什么什么的时候)
while(循环条件)
{
循环体;
}
执行过程:程序运行到while时,首先判断while所带的小括号内的循环条件是否成立,如果成立(返回true),则执行循环体。执行完一遍,在回到循环条件进行判断,如果依然成立,则继续执行循环体,如果不成立,则跳出while循环。在 while 循环当中,一般总会有那么一行代码能够改变循环条件,使之终有一天不再成立,如果没有那么一行代码能够改变循环条件,也就是循环条件永远成立,称之为死循环。
最简单的最常用的死循环:
while (true)
{
}
循环不好写:写注释:先分析出(循环体)是什么,在去想(循环条件)
break 关键字的作用: 1、跳出 switch-case 结构。
2、跳出 当前循环。
break一般不单独的使用,而是跟着if判断一起使用,表示,当满足某些条件的时候,就不再循环了。
do-while 循环
遇见首先执行一遍循环体,拿着执行后的结果再去判断是否执行循环的循环,推荐使用do-while循环。
语法:
do
{
循环体;
}while (循环条件);
执行过程:程序首先会执行do中的循环体,执行完成后,去判断do-while循环的循环条件,如果成立,则继续执行do中的循环体,如果不成立,则跳出do-while循环。
特点:先循环,再判断,最少执行一遍循环体。
while 和 do-while 推荐掌握while
C#编程—第四天的更多相关文章
- AOP面向切面编程的四种实现
一.AOP(面向切面编程)的四种实现分别为最原始的经典AOP.代理工厂bean(ProxyFacteryBean)和默认自动代理DefaultAdvisorAutoProxyCreator以及Bea ...
- 5天玩转C#并行和多线程编程 —— 第四天 Task进阶
5天玩转C#并行和多线程编程系列文章目录 5天玩转C#并行和多线程编程 —— 第一天 认识Parallel 5天玩转C#并行和多线程编程 —— 第二天 并行集合和PLinq 5天玩转C#并行和多线程编 ...
- WCF编程系列(四)配置文件
WCF编程系列(四)配置文件 .NET应用程序的配置文件 前述示例中Host项目中的App.config以及Client项目中的App.config称为应用程序配置文件,通过该文件配置可控制程序的 ...
- Java 网络编程(四) InetAddress类
链接地址:http://www.cnblogs.com/mengdd/archive/2013/03/09/2951895.html Java 网络编程(四) InetAddress类 InetAdd ...
- 脑残式网络编程入门(四):快速理解HTTP/2的服务器推送(Server Push)
本文原作者阮一峰,作者博客:ruanyifeng.com. 1.前言 新一代HTTP/2 协议的主要目的是为了提高网页性能(有关HTTP/2的介绍,请见<从HTTP/0.9到HTTP/2:一文读 ...
- [Java并发编程(四)] Java volatile 的理论实践
[Java并发编程(四)] Java volatile 的理论实践 摘要 Java 语言中的 volatile 变量可以被看作是一种 "程度较轻的 synchronized":与 ...
- 并发编程(四)TaskFuture
并发编程(四)TaskFuture ExecutorService executorService = Executors.newSingleThreadExecutor(); Future<O ...
- C#中的函数式编程:递归与纯函数(二) 学习ASP.NET Core Razor 编程系列四——Asp.Net Core Razor列表模板页面
C#中的函数式编程:递归与纯函数(二) 在序言中,我们提到函数式编程的两大特征:无副作用.函数是第一公民.现在,我们先来深入第一个特征:无副作用. 无副作用是通过引用透明(Referential ...
- Scala函数式编程(四)函数式的数据结构 下
前情提要 Scala函数式编程指南(一) 函数式思想介绍 scala函数式编程(二) scala基础语法介绍 Scala函数式编程(三) scala集合和函数 Scala函数式编程(四)函数式的数据结 ...
- 《Java 8实战》读书笔记系列——第三部分:高效Java 8编程(四):使用新的日期时间API
https://www.lilu.org.cn/https://www.lilu.org.cn/ 第十二章:新的日期时间API 在Java 8之前,我们常用的日期时间API是java.util.Dat ...
随机推荐
- Kotlin 匿名内部类对象引用当前Activity的this用法
一,Kotlin中匿名内部类,引用Activity的this用法为 this@MainActivity (对应自己的Activity),还是上代码吧 class Main17Activity : Ap ...
- Vue-选项卡切换
<html> <head> <title>Vue实现tab切换效果</title> <script src="vue.js"& ...
- source insight 4.0.86.0安装破解问题
source insight 4.0.86.0安装过程中碰到导入lic文件一直不正确 解决办法: 需要将SourceInsight\SW_Install\SI4安装及破解文件 目录下的sourcein ...
- JVM参数说明
转载于https://www.cnblogs.com/redcreen/archive/2011/05/04/2037057.html文章 JVM参数说明 -Xms:初始堆大小 默认值=物理内存的1 ...
- [CodeForces - 1225E]Rock Is Push 【dp】【前缀和】
[CodeForces - 1225E]Rock Is Push [dp][前缀和] 标签:题解 codeforces题解 dp 前缀和 题目描述 Time limit 2000 ms Memory ...
- apache2 配置入门
ServerRoot "/usr/local/apache2" #服务器根目录 Listen #监听端口 语法格式为Listen [IP地址:]端口 [协议],其中IP地址与协议为 ...
- Linux复制命令cp进阶
cp -a:连同属性和权限也一起复制 cp -i:如果不带该参数,默认覆盖同名文件而不会提醒. cp -u:只拷贝符合以下条件的文件到目标目录:目标目录中不存在的文件或目标目录中文件版本较旧的文件. ...
- dotnet 跨平台编译发布
dotnet publish 命令,bash脚本如下(Windows安装git即可建议sh关联) publish.sh #!/usr/bin/env bash # one line command: ...
- Python3解leetcode Maximum SubarrayHouse Robber
问题描述: You are a professional robber planning to rob houses along a street. Each house has a certain ...
- 09-排序2 Insert or Merge(25 分)
According to Wikipedia: Insertion sort iterates, consuming one input element each repetition, and gr ...