如何在bat for循环 变量赋值中为变量赋值?

for循环的第三个参数可以给其他变量赋值吗_百度知道
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。
for循环的第三个参数可以给其他变量赋值吗
我有更好的答案
k);}return 0;} 输出;int main( ){i&3; i++可以。例如:#include&stdio.h&gt,k++){printf(&i=%d k=%d&#92,i;n&,k=10;for (i=0
采纳率:89%
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包后使用快捷导航没有帐号?
只需一步,快速开始
请完成以下验证码
请完成以下验证码
主题帖子荣誉
鱼友Ⅰ, 积分 179, 距离下一级还需 21 积分
鱼友Ⅰ, 积分 179, 距离下一级还需 21 积分
查看: 943|回复: 13
& 累计签到:55 天连续签到:1 天
马上注册加入鱼C,享用更多服务吧^_^
才可以下载或查看,没有帐号?
在14讲中,检查你的密码级别中,flag_len 在while循环前,没有进行赋值 ,为什么可以使用还不报错
length = len(password)
while password.isspace()or length==0:
& & password = raw_input (&你输入的密码为空,请重新输入: &)
if length &= 8:
& & flag_len = 1& &&&#这个没有在前面赋值,为什么可以使用还不报错
& & print flag_len
elif 8 & length &16:
& & flag_len = 2
else:
& & flag_len = 3复制代码
把你的程序简化一下:
length&&= 8
if length &= 8:
& & flag_len = 1 复制代码
这是可以正常运行的,因为所有的变量都是先赋值后引用。
& 累计签到:132 天连续签到:1 天
python的特点啊
& 累计签到:55 天连续签到:1 天
python的特点啊
在定义函数的时候也这样。。。。有时候真是有点糊涂。。。。
& 累计签到:725 天连续签到:24 天
05行不就是赋值语句吗?
& 累计签到:55 天连续签到:1 天
05行不就是赋值语句吗?
也就是说在赋值的时候,在条件循环中也可以赋值,不一定非要写在前面
& 累计签到:725 天连续签到:24 天
&&&本楼为最佳答案&&&
把你的程序简化一下:
length&&= 8
if length &= 8:
& & flag_len = 1 复制代码
这是可以正常运行的,因为所有的变量都是先赋值后引用。
& 累计签到:55 天连续签到:1 天
把你的程序简化一下:
这是可以正常运行的,因为所有的变量都是先赋值后引用。
明白了,意思就是在用之前赋值就可以。。。。这样理解对不。。。。
& 累计签到:725 天连续签到:24 天
明白了,意思就是在用之前赋值就可以。。。。这样理解对不。。。。
& 累计签到:152 天连续签到:1 天
学c语言过来的?
python中对象都是引用,类似于c的指针指向一个变量。
所以python中变量在第一次赋值时定义,此处:flag_len = 1 第一次对flag_len赋值,意味着定义了flag_len
c中要求先定义flag_len,赋值,然后才能使用变量,这在python中是不存在的,随时赋值,随时用。
& 累计签到:55 天连续签到:1 天
学c语言过来的?
python中对象都是引用,类似于c的指针指向一个变量。
哈哈,不是,以前只是用电脑看看视频,玩玩qq,这两天才开始学,你说的我明白了,讲的很清楚,
& 累计签到:108 天连续签到:1 天
flag_len = 1 这个本身就是赋值吧
& 累计签到:276 天连续签到:1 天
就像我现在学c一样,整天忘了声明变量
& 累计签到:55 天连续签到:1 天
就像我现在学c一样,整天忘了声明变量
& 累计签到:451 天连续签到:1 天
这代码,运行第一行就报错。。。
小甲鱼强烈推荐
编写一个小爬虫,爬取网易云音乐上指定歌曲的精彩评论。
为了增加趣味性,本届比赛增加了“押宝玩法”、“竞猜玩法”和“擂主玩法”。
本期题目:下一个包含有相同数字的整数
移动客户端下载(未启用)
微信公众号
Powered by
Copyright &
&&& All Rights Reserved.for循环中,表达式1内可以同时给多个变量赋值吗?
for($a=0,$b=1;表达式2;表达式3)
上面例子中 同时给多个值赋值了,语句对吗? 还是只能给一个变量赋值
建议对不清楚的知识,你自己尝试一下,把各种情况都写下来,把程序运行一遍,就有答案了。for ( c ) {}a b c 都是可以写,也可以不写的,但是 两个分号 必须写。比如 for ( ) 或者 for ( ; c ) 或者 for (a; ; ) 甚至 for ( ; ; ) 。其中 a 和 c 都是可以写任意内容的,只要写的表达式是合法的,都会正常执行。而 b 表达式的最终结果确保是 true 或者 false 即可。所以,你的想法是可以实现的。
你还没有登录,请先登录或注册慕课网帐号
可以的,双重循环,超过3重意义就不大了。反而会使循环结构变得更加复杂。
你还没有登录,请先登录或注册慕课网帐号
&?php for($i=1,$b=2; $i&10;$i++){
echo $i."-".$b."**"; }结果输出:1-2**2-2**3-2**4-2**5-2**6-2**7-2**8-2**9-2**
你还没有登录,请先登录或注册慕课网帐号
当然可以了~~
你还没有登录,请先登录或注册慕课网帐号
哦哦 谢谢! 又多学了个知识点
你还没有登录,请先登录或注册慕课网帐号
35108人关注
Copyright (C)
All Rights Reserved | 京ICP备 号-2后使用快捷导航没有帐号?
只需一步,快速开始
查看: 5678|回复: 16
[ASP]怎么用循环批量给变量赋值?
UID31299在线时间 小时积分21989帖子离线17511 天注册时间
我是想向数据库中添加数据表,动态的定义字段
fieldcoun=trim(request.form(&fieldcoun&))
然后用
&%
& & & & & & & & response.write(&&table width='595' border='1' align='center' cellpadding='0' cellspacing='0' bordercolor='#CCCCCC'&&)
& & & & & & & & for i = 1 to fieldcoun
& && &&&response.write(&&&&tr&&)
& && &&&response.write(&&&&td width='37%' class='tdright'&字段 &&i&& 及其类型:&/td&&)
& & & & & & & & response.write(&&&&td&&input name='field&&i&&' type='text' id='field&&i&&'&&maxlength='30'&&/td&&)
& && &&&response.write(&&&&/tr&&)
& & & & & & & & next
& && &&&response.write(&&/table&&)
%&复制代码
这里没什么问题了
然后下一个页面问题就来了,怎么可以把提交的这些&field&&i&用到下面呢?
for i=1 to fieldcoun
& &field&i&??????????????????????????
还有写入数据库
sql=&Create table &&tabname&& (field1,field2,……field'i',)&
这里怎么才可以用循环动态定义?
有没有可能实现?
UID23092在线时间 小时积分21948帖子离线17511 天注册时间
& &'Replace()是将字符串中的'替换成两个'主要为了防止字符串中有单引号时引起SQL语句执行出错
& &'If&&i && fieldcoun Then字段名后跟逗号,如果i = fieldcoun时,不跟逗号
& & sFields = &&
& & For i = 1 To fieldcoun
& && & If i && fieldcoun Then
& && && &&&sFields = sFields & Replace(Trim(Request.Form(&field& & i)),&'&,&''&) & &,&
& && & Else
& && && && &sFields = sFieldsy & Replace(Trim(Request.Form(&field& & i)),&'&,&''&)
& && & End If
& & Next
& & sql = &CREATE TABLE &&tabname&& (& & sFields & &)&
UID31299在线时间 小时积分21989帖子离线17511 天注册时间
为什么要加个If i && fieldcoun ?
fieldcoun是个数啊
又不是从0到***
并且如果从0开始循环 to fieldcoun-1不就得了?
Replace是什么?
是不是应该这样:
& & sFields = &&
& & For i = 1 To fieldcoun
& && & If i && fieldcoun Then
& && && &&&sFields = sFields & Replace(Trim(Request.Form(&field& & i)),&'&,&''&) & &,&
& && && &else sFields = sFields & Replace(Trim(Request.Form(&field& & i)),&'&,&''&)
& && & End If
& & Next
& & sql = &CREATE TABLE &&tabname&& (& & sFields & &)&
UID11302在线时间 小时积分9629帖子离线17511 天注册时间
UID31299在线时间 小时积分21989帖子离线17511 天注册时间
几经修改,我改成这个样子了
fieldcoun=trim(fieldcoun)
& & sFields = &&
& & For i = 1 To fieldcoun-1
& && & sFields = sFields & Trim(Request.Form(&field& & i)) & &,&
& && &sFields = sFields & Trim(Request.Form(&field& & i))
& && &sql = &CREATE TABLE &&tabname&& (& & sFields & &)&
发现用if总是有问题
最后一句总是要加以个&,&,可见if出问题了
UID31299在线时间 小时积分21989帖子离线17511 天注册时间
这样好像回避了一个关键的问题
用循环批量给变量赋值
虽然问题是解决了
是不是需要用数组?
数组怎么用?
定义、赋值和引用的语法
谁告诉我一下
UID23074在线时间 小时积分11629帖子离线17511 天注册时间
标量变量和数组变量
多数情况下,只需为声明的变量赋一个值。只包含一个值的变量被称为标量变量。有时候,将多个相关值赋给一个变量更为方便,因此可以创建包含一系列值的变量,称为数组变量。数组变量和标量变量是以相同的方式声明的,唯一的区别是声明数组变量时变量名后面带有括号 ( )。下例声明了一个包含 11 个元素的一维数组:
虽然括号中显示的数字是 10,但由于在 VBScript 中所有数组都是基于 0 的,所以这个数组实际上包含 11 个元素。在基于 0 的数组中,数组元素的数目总是括号中显示的数目加 1。这种数组被称为固定大小的数组。
在数组中使用索引为数组的每个元素赋值。从 0 到 10,将数据赋给数组的元素,如下所示:
A(0) = 256
A(1) = 324
A(2) = 100
A(10) = 55
与此类似,使用索引可以检索到所需的数组元素的数据。例如:
SomeVariable = A(8)&&
数组并不仅限于一维。数组的维数最大可以为 60(尽管大多数人不能理解超过 3 或 4 的维数)。声明多维数组时用逗号分隔括号中每个表示数组大小的数字。在下例中,MyTable 变量是一个有 6 行和 11 列的二维数组:
Dim MyTable(5, 10)
在二维数组中,括号中第一个数字表示行的数目,第二个数字表示列的数目。
也可以声明动态数组,即在运行脚本时大小发生变化的数组。对数组的最初声明使用 Dim 语句或 ReDim 语句。但是对于动态数组,括号中不包含任何数字。例如:
Dim MyArray()
ReDim AnotherArray()
要使用动态数组,必须随后使用 ReDim 确定维数和每一维的大小。在下例中,ReDim 将动态数组的初始大小设置为 25,而后面的 ReDim 语句将数组的大小重新调整为 30,同时使用 Preserve 关键字在重新调整大小时保留数组的内容。
ReDim MyArray(25)
ReDim Preserve MyArray(30)
重新调整动态数组大小的次数是没有任何限制的,尽管将数组的大小调小时,将会丢失被删除元素的数据。
UID31299在线时间 小时积分21989帖子离线17511 天注册时间
使用就是用:
Var1 = A(8)
Var2 = B(4,5)
这样就可以给变量Var1、Var2赋值了?
另外,既然可以使用动态数组,是不是数组也和变量一样,可以不用声明?
还有,在传送的时候,好像还是不好解决
就拿我前面那个例子来说,怎么才能用数组把
Request.Form(&field& & i)……
是不是这样就可以了?
For i = 0 To fieldcoun-1
ArrayFields(i) = Trim(Request.Form(&field& & i))复制代码
这里可以把(&field& & i)连接起来,会不会有没办法连接的情况?
UID31299在线时间 小时积分21989帖子离线17511 天注册时间
刚看到一段代码:
&%
for i = 1 to request.form(&name&).count
response.write request.form(&name&)(i)&&&br&&
next
%&
复制代码
request.form(&name&)(i)
??????
什么情况下会用到这个?
那前面的提交表单是什么样子的?
UID23074在线时间 小时积分11629帖子离线17511 天注册时间
blueprince在上个帖子中说
刚看到一段代码:
&%
for i = 1 to request.form(&name&).count
response.write request.form(&name&)(i)&&&br&&
next
%&
复制代码
request.form(&name&)(i)
??????
什么情况下会用到这个?
那前面的提交表单是什么样子的?
这个情况应该是:表单里有一组同名(name)的input,即同名input数组,
通常会用在批量传递参数方面
接受页面接受到这个表单数组后,进行相应处理,一般会用split()函数拆分为字符串数组
UID31299在线时间 小时积分21989帖子离线17511 天注册时间
那各自发送出去的request.form(&name&)(i)顺序是不是乱的?
我那问题用这个也可以解决了
把前面的form改一下,让input都是一样的值
好像还比较方便一点
UID23074在线时间 小时积分11629帖子离线17511 天注册时间
有个for ...each value。。next 的语句,会顺序遍历数组的
UID25987在线时间 小时积分16178帖子离线17511 天注册时间
blueprince在上个帖子中说
几经修改,我改成这个样子了
fieldcoun=trim(fieldcoun)
& & sFields = &&
& & For i = 1 To fieldcoun-1
& && & sFields = sFields & Trim(Request.Form(&field& & i)) & &,&
& && &sFields = sFields & Trim(Request.Form(&field& & i))
& && &sql = &CREATE TABLE &&tabname&& (& & sFields & &)&
发现用if总是有问题
最后一句总是要加以个&,&,可见if出问题了
fieldcoun=trim(fieldcoun)
& & sFields = &&
& & For i = 1 To fieldcoun
& && & sFields = sFields &&'&& Trim(Request.Form(&field& & i)) & &',&
& && & if i = filedcoun then
& && & sFileds = sFields &&'&& Trim(Request.Form(&field& & i))&&'&
& && & end if
& & Next
& && &sql = &CREATE TABLE &&tabname&& (& & sFields & &)&
%&
这样连接看看可以了吧.
按照你的意思,不用那么繁琐了.
UID31299在线时间 小时积分21989帖子离线17511 天注册时间
信心索在上个帖子中说
& && & sFields = sFields &&'&& Trim(Request.Form(&field& & i)) & &',&
& && & if i = filedcoun then
这两句是不是颠倒了
if i = filedcoun then
else sFields = sFields &&'&& Trim(Request.Form(&field& & i)) & &',&
但是我当时试了
总是有问题
就改了一下
还有后面的单引号和都号干什么的?
我觉得那些语句里面好像不用加引号啊
像我改了的那个
UID23074在线时间 小时积分11629帖子离线17511 天注册时间
& & sFields = &&
& & For i = 1 To fieldcoun
& && && &&&sFields = sFields & Replace(Trim(Request.Form(&field& & i)),&'&,&''&) & &,&
& & Next
& &[color=red] sFields=left(sFields,len(sFields)-1)[/color]
& & sql = &CREATE TABLE &&tabname&& (& & sFields & &)&
这样理论上讲更快一些,因为不需要每次循环都得判断条件了:)
UID31299在线时间 小时积分21989帖子离线17511 天注册时间
那我那个还少循环一次
Replace(Trim(Request.Form(&field& & i)),&'&,&''&)
把 ' 换成 两个'& &?
执行的时候怎么办呢?
为什么一个会出错
两个就不会?
UID23092在线时间 小时积分21948帖子离线17511 天注册时间
假设有一SQL语句如下:
SQL = &SELECT uname,pass,id FROM tablename WHERE uname='& & uName & &'&复制代码
如果Uname = &' OR ' 1=1'&,这样SQL语句就变成
SQL = &SELECT uname,pass,id FROM tablename WHERE uname='' OR '1=1'&复制代码了
所以为了防止出现类似的问题,就得把'替换成''了
Replace(Uname,&'&,&''&)后,就变成SQL语句就变成这样了
SQL = &SELECT uname,pass,id FROM tablename WHERE uname=''' OR '' 1=1 '''&复制代码
实际执行时会把两个连续的单引号解释为一个单引号,明白了么?
Powered by}

我要回帖

更多关于 sas宏变量赋值循环 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信