这个程序是随机抽取手机号码,要求不重复,在线等待,急急急急急

yjsyjs 2003-04-10 10:40:20
/**
*
* <pre>
* 项目:SMS
* 模块:短信息
* 功能:用户订阅短抽奖
* 其他说明:
* 1)暂无.
* 2)
*
* Company: TOL24.COM
* </pre>
* @author 杨津松
* @version 1.0
* @since 2003/04/09
*/

package com.tol24.sms ;

import java.sql.* ;
import javax.sql.* ;
import com.tol24.database.* ;
import com.tol24.util.* ;

public class takeaward
{
public static void main( String[] args )
{

try
{
String strSQL =
"select Count(distinct phoneno) AS Rowcount from subscription,smsuser,product where subscription.userid=smsuser.id "
+
"and product.payway='03' and subscription.productid=product.id and subscription.status=1 and product.status=1" ;
RowSet rs = DBManager.executeQuery( strSQL ) ;
rs.next() ;
//生成1和总条数之间的随机数.
int allcount = rs.getInt( "ROWCOUNT" ) ;
System.out.println( "allcount" + allcount ) ;
int iTemp = 0 ; //位置变量
String[] phoneNO = new String[ 100 ] ;

strSQL = "select distinct phoneno from subscription,smsuser,product where subscription.userid=smsuser.id "
+
"and product.payway='03' and subscription.productid=product.id and subscription.status=1 and product.status=1" ;
rs = DBManager.executeQuery( strSQL ) ;
rs.next() ;
iTemp = util.getRandomInteger( 1, allcount ) ;
rs.absolute( iTemp ) ;
String awardphoneNO = rs.getString( "phoneno" ) ;
System.out.println( "一等奖号码" + awardphoneNO ) ;
phoneNO[ 0 ] = awardphoneNO ;
int awardcount = 0 ;

while ( awardcount < 56 )
{
iTemp = util.getRandomInteger( 1, allcount ) ;
rs.absolute( iTemp ) ;
awardphoneNO = rs.getString( "phoneno" ) ;

System.out.println( "awardcount" + awardcount ) ;
for ( int i = 0 ; i <= awardcount ; i++ )
{
System.out.println("i="+i);
System.out.println( "phoneNO" + phoneNO[ i ] ) ;
if ( !phoneNO[ i ].equals( awardphoneNO ) )
{
awardcount++ ;
phoneNO[ awardcount ] = awardphoneNO ;
if ( awardcount < 6 )
{
System.out.println( "二等奖号码" + awardphoneNO ) ;
}
else
{
System.out.println( "三等奖号码" + awardphoneNO ) ;
}
}
}
}
}
catch ( SQLException e )
{}

}
}
这个程序是随机抽取手机号码,要求不重复
现在,结果发现变量i不变化,请问为什莫
...全文
123 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
wojue 2003-04-11
  • 打赏
  • 举报
回复
受不了了,我們倆一塊被人罵吧
哼,到是我不借你錢買手機
讓你回去自己慢慢哭
wuwoczj 2003-04-11
  • 打赏
  • 举报
回复
哎,我认识你吗?
这是讨论技术的地方
请不要占用大家的时间好不好
请你注意,否则我可要喊警察了
//=========================
另外,有点对不住楼主
wojue 2003-04-11
  • 打赏
  • 举报
回复
濫人
竟然滿口的仁義道德,平時怎麼沒看出來
難怪你手機會丟,活該
wuwoczj 2003-04-11
  • 打赏
  • 举报
回复
哎,怎么恐吓我
这可是讲法制的地方
再说了,助人为乐吗,何必呢
这点美德都没有,唉,长此以往。。。。
wojue 2003-04-11
  • 打赏
  • 举报
回复
wuwoczj(无我,误我,悟我,无我)
看我回去怎麼收拾你,濫人
wuwoczj 2003-04-11
  • 打赏
  • 举报
回复
回复人: wojue() ( ) 信誉:100 2003-04-10 12:12:00 得分:0


不要謝謝,要分


//====================================

哈哈,没见过这么急迫的人!!!

:]
xhongyang 2003-04-10
  • 打赏
  • 举报
回复
up
wojue 2003-04-10
  • 打赏
  • 举报
回复
不要謝謝,要分
yjsyjs 2003-04-10
  • 打赏
  • 举报
回复
我已解决问题在这,谢谢大家
while ( awardcount < 55 )
{
boolean bresult=false;

iTemp = util.getRandomInteger( 1, allcount ) ;
rs.absolute( iTemp ) ;
awardphoneNO = rs.getString( "phoneno" ) ;

//System.out.println( "awardcount" + awardcount ) ;
for ( int i = 0 ; i <= awardcount ; i++ )
{
//System.out.print("phoneNO"+i+"="+phoneNO[ i ]);
if ( phoneNO[ i ].equals( awardphoneNO ) )
{
bresult = false ;
}
else
{
bresult = true ;
}
}
if(bresult)
{
awardcount++ ;
phoneNO[ awardcount ] = awardphoneNO ;
if ( awardcount < 6 )
{
System.out.println( "二等奖号码" + awardphoneNO ) ;
}
else
{
System.out.println( "三等奖号码" + awardphoneNO ) ;
}
}
bresult=false;
}
wojue 2003-04-10
  • 打赏
  • 举报
回复
i <= awardcount
改為i<=56吧
我看你的意思是想生成一個一等獎,六個二等將,五十個三等獎
wojue 2003-04-10
  • 打赏
  • 举报
回复
int awardcount = 0 ;
你把它置0,for ( int i = 0 ; i <= awardcount ; i++ )里i <= awardcount
第一次就會退出for,i只當然不變了
wylove 2003-04-10
  • 打赏
  • 举报
回复
给你个建议,看看设计模式的singleTon模式,专门解决不重复问题!
你这个程序由于不是独立的程序,所以很难看出问题,是不是i变量的问题,不妨换一个变量名!

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧