C语言中的程序结构有三种,分别是顺序结构、选择结构和循环结构。

初衷

自微信小程序出道以后不断升温,各行各业都在尝试使用小程序。所以小编特此把自己编写小程序过程中遇到的问题,心得,和技巧分享给大家,希望可以帮助在路上和准备上路的“码”友。
“极客冲顶”是小编在业余时间编写的一款答题小程序,期间遇到了很多问题,特此归纳总结,做了一系列的文章分享给大家。为了大家更好的理解小程序的开发过程,小编特此重新编写一个名为“久问问答”的小程序,和大家一起从零开始,最终到可以发布的一些列文章,同时会在接下来的每期更新到最新源码。有兴趣的朋友可以置顶订阅号,以便及时获取最新章节。
点击此处体验“极客冲顶”。

PS:久问问答:久一的问答社区,小程序会如期在全部章节完成以后上线,届时欢迎大家体验。

首先,我们打开VS2013,新建一个窗体应用程序如图:

一、按照语句的先后顺序执行的程序结构,称为顺序结构。

愿景

小编认为,最好的学习就是实战,学了再多的基础知识不去用也是浪费,就好比“英雄无用武之地”。所以小编直接带大家实战,用项目驱动学习。过程中你会学习,基本的HTML,CSS,ES6,Spring-Boot,MyBatis,MyBatis
Generator,Flyway,Restful,Heroku,项目部署搭建和一些编程实践。所以通过学习本系列教程以后,你可以自己开发小程序前后端,并且上线自己的小程序,同时可以熟悉使用如上罗列的工具。

澳门微尼斯人手机版 1

下面以一个求三角形面积的例子进行说明,其代码如下:

要求

当然本系列文章也会学习者有一定要求,初步了解
HTML,CSS,JAVA即可,如果你真的一点不会也有兴趣,也可以试试,只是会吃力,不过有问题可以大家一起讨论。文末会有一个小程序交流群,欢迎大家随时讨论技术相关知识,切记广告者勿入。

需求:我们要实现这样的功能,点击文本框,然后弹出文件对话框,让我们选择文件,然后点击确定之后,读取指定文件的内容,随后我们将读取到的数据,写入文本中。

例1.1

目录

目录和时间以实际为准,下面是预计内容和章节

  • 小程序申请和注意事项
  • 客户端代码准备和基础功能讲解
  • 服务器的选择和服务器搭建
  • 登录实现第一讲,数据库创建,Flyway,MyBatis Generator的使用。
  • 登录实现第二讲,多环境部署 Spring Boot,Spring
    Profile和Heroku的使用。
  • 登录实现第三讲,登录逻辑实现,登录验证和通用接口的验证方式。
  • 问答功能第一讲,发布问答,Restful,ES6和Toast使用。
  • 问答功能第二讲,发布带图问答,上传图片和七牛使用。
  • 问答功能第三讲,问答列表,下拉刷新,上拉更新使用。
  • 问答功能第四讲,回复问答,通知功能使用。课下作业,回复问题艾特功能实现。
  • 问答功能第五讲,PC支持发布问答功能
  • 分享问答并获得经验值
  • 为小程序添加广告
  • 发布准备 HTTPS搭建,域名配置。
  • 发布后维护方案,分离UAT和PROD环境。

文件读写原理:前面,我们在学习文件读写原理的时候,已经知道,硬盘的数据和内存之间的关系,在磁盘中,我们将数据读取成二进制的数据,存放到byte数组中,然后在内存中,我们需要将byte数组转化为原始的文本数据。

澳门微尼斯人手机版 2

问答

如果您对本系列文章有兴趣,欢迎置顶本订阅号,第一时间获取更新。
如果有任何问题,欢迎加入下方交流群。请添加小编微信,切记备注“小程序”,小编拉你进去。【只讨论技术,非诚勿扰】
澳门微尼斯人手机版 3

然后看下截图的代码:

 1 #include<stdio.h> 2 int main() 3 { 4       int width,height,s; 5       printf("请输入三角形的底宽:\n"); 6       scanf("%d",&width); 7       printf("请输入三角形的高:\n"); 8       scanf("%d",&height); 9       s=width*height/2;10       printf("三角形的面积为:s=%d\n",s);11       return 0;12  }

关注

小编运营的订阅号 “码匠笔记”,就先后就职于
ThoughtWorks、阿里巴巴等互联网公司的经验分享,包含但不限于
JAVA、并发编程、性能优化、架构设计、小程序、开源软件等。有兴趣可以关注一波,一起学习、讨论。

澳门微尼斯人手机版 4

澳门微尼斯人手机版 5

澳门微尼斯人手机版 6

我们通过OpenFileDialog类,来创建一个对话框。通过其实例对象的ShowDialog方法,来显示对话框,这个方法的返回值是DialogResult类型。图中的代码意思是:当我们打开对话框,点击确定之后,显示所选的文件的全路径。

程序在执行时,需先输入三角形的底宽,再输入高,程序往下执行,计算三角形的面积,最后将面积显示出来。这是按照语句的先后顺序执行的。

代码这样写,通过filenames也可以达到一样的效果:看图:

二、根据某种条件的成立与否而采用不同的程序段进行处理的程序结构,称为选择结构。

澳门微尼斯人手机版 7

通常选择结构有两个分支,条件为真,执行甲程序段,否则执行乙程序段。有时,两个分支还不能完全描述实际问题(例如将学生成绩根据分数高低分成A,B,C,D,E等多个等级),需要分成多个分支,这样的程序结构称为多分支选择结构。

现在我们已经达到了这样的效果,显示了文件的路径,然后现在我们要点击读取按钮,把所选的文件文件,数据读取到另一个文件中。

1、if简单语句

澳门微尼斯人手机版 8

其语法形式如下:

我们测试的文本是:

if

澳门微尼斯人手机版 9

{语句1}

可以看到这个文本是293个字节:(在代码中,我们创建数组的时候,怎么知道创建的多大的呢??)

功能:计算表达式的值,若为“真”,则执行语句1,否则将跳过语句1,执行if语句的下一条语句。

这里有个技巧:澳门微尼斯人手机版 10

例2.1

先读取传过来的文本的路径,在文件流中的length属性就标志了,我们需要读取的文件的大小。我们就可以知道要创建的数组的大小了。

澳门微尼斯人手机版 11

澳门微尼斯人手机版 12

 1 #include<stdio.h> 2 int main() 3 { 4       int age; 5       scanf("%d",&age); 6       if(age>18) 7       { 8             printf("您已经是成年人了!"); 9       }10       re&turn 0;11  }

所有的代码:

澳门微尼斯人手机版 13

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.IO;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;namespace FileReadDemo{    public partial class Form1 : Form    {        public Form1()        {            InitializeComponent();        }        private void txtPath_Click(object sender, EventArgs e)        {            //文件打开对话框            OpenFileDialog openDialog = new OpenFileDialog();            //显示对话框的方法。返回值是DialogResult类型            //openDialog.ShowDialog();            if (openDialog.ShowDialog() == DialogResult.OK)            {                                   txtPath.Text = openDialog.FileName;   //获取全路径                                               }        }        private void btnRead_Click(object sender, EventArgs e)        {            //1.读取文件的话,我们需要使用文件的读写类,这里使用FileStream类,引用命令空间System.IO.            //读文件,模式选择Open            FileStream fileRead = new FileStream(txtPath.Text, FileMode.Open);            //创建byte类型的数组(注意这个时候,有个疑问了,数组大小应该创建多大的呢?)            byte[] fileByte = new byte[fileRead.Length];                        //2.将文件中所指定的数据读取到数组中            fileRead.Read(fileByte, 0, fileByte.Length);            //现在已经按照文件读写原理,把磁盘的数据转为二进制,存到数组了,现在需要写入到文件中            //但FileStream类只能做一件事,要么读文件,要么写文件。解决方法,我们可以再创建一个FileStream            //备注;这里先不管,文件流的释放的问题了。测试阶段,后面会优化。            //这里为测试方便,就选择把读取的文件,读到D盘aaa.txt文件中。            //写文件,模式选择Create            FileStream fileWrite = new FileStream(@"D:\aaa.txt", FileMode.Create);            //然后就是写入文件中了                        fileWrite.Write(fileByte, 0, fileByte.Length);            //测试代码,完毕之后,显示OK            MessageBox.Show("OK");        }    }}

上述程序中,首先定义了整型变量age,在输入age的值之后,根据age的值的大小,来判断是否为成年人。运行代码时,假如输入的数值大于18岁,则输出”您已经是成年人了!“,否则直接退出程序。

注意;这个例子需要执行成功之后,需要将程序停止,才可以看到文件文件中读取到的数据,FileStream的缓存作用。。

2、if—else语句

下面来优化一下代码:

其语法形式如下:

上面的代码,只能执行一次,因为文件流没有被释放:

if

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.IO;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;namespace FileReadDemo{    public partial class Form1 : Form    {        public Form1()        {            InitializeComponent();        }        private void txtPath_Click(object sender, EventArgs e)        {            //文件打开对话框            OpenFileDialog openDialog = new OpenFileDialog();            //显示对话框的方法。返回值是DialogResult类型            //openDialog.ShowDialog();            if (openDialog.ShowDialog() == DialogResult.OK)            {                txtPath.Text = openDialog.FileName;   //获取全路径            }        }        private void btnRead_Click(object sender, EventArgs e)        {            //1.读取文件的话,我们需要使用文件的读写类,这里使用FileStream类,引用命令空间System.IO.            //读文件,模式选择Open            using (FileStream fileRead = new FileStream(txtPath.Text, FileMode.Open))            {                //创建byte类型的数组(注意这个时候,有个疑问了,数组大小应该创建多大的呢?)                byte[] fileByte = new byte[fileRead.Length];                //2.将文件中所指定的数据读取到数组中                fileRead.Read(fileByte, 0, fileByte.Length);                //现在已经按照文件读写原理,把磁盘的数据转为二进制,存到数组了,现在需要写入到文件中                //但FileStream类只能做一件事,要么读文件,要么写文件。解决方法,我们可以再创建一个FileStream                //备注;这里先不管,文件流的释放的问题了。测试阶段,后面会优化。                //这里为测试方便,就选择把读取的文件,读到D盘aaa.txt文件中。                //写文件,模式选择Create                using (FileStream fileWrite = new FileStream(@"D:\aaa.txt", FileMode.Create))                {                    //然后就是写入文件中了                    fileWrite.Write(fileByte, 0, fileByte.Length);                    //测试代码,完毕之后,显示OK                    MessageBox.Show("OK");                }            }        }    }}

{语句1}

else

{语句2}

功能:计算表达式的值,若表达式的值为”真“执行语句1,并跳过语句2,继续执行if—else语句的下一条语句,若表达式为假,跳过语句1,执行语句2,然后继续执行if—else语句
的下一条语句。

例2.2

澳门微尼斯人手机版 14

 1 #include<stdio.h> 2 int main() 3 { 4        int age; 5        scanf("%d",&age); 6        if(age>18) 7        {   8               printf("您已经是成年人了!"); 9         }10        else11        {12               printff("您还是未成年人了!");13         }14      re&turn 0;15  }

澳门微尼斯人手机版 15

上述程序与例2.1相比,多了一条语句。在运行代码时,假如输入的数值大于18岁,则输出”您已经是成年人了!“,否则输出”您还是未成年人!“。

3、嵌套的if语句

在if语句和if—else语句形式中,语句1或语句2可以是任意合法语句。若它们也是if语句,就构成嵌套的if语句。嵌套形式有多种,下面介绍几种。

嵌套形式1 嵌套形式2 嵌套形式2

if if if

{ { {语句1}

if if else if

{语句1} {语句1} {语句2}

else } else

发表评论

电子邮件地址不会被公开。 必填项已用*标注