se小问题,为什么循环跳不出来

图片说明

图片说明

图片说明
试了下发现语句未执行,为什么呢

0

7个回答

你的 arr[i] 赋值语句在 if(arr[i]>100) 判断的后面执行,也就是说执行 if 判断时,arr[i] 是没有赋值的;当 i=2 时 arr[2] 的值是 1,当 i 是3或更大的值时,arr[i] 是没有值,应该默认是 nil 这样的表示不存在的值,所以是不可能大于 100 自然就不可能执行后面的语句。

1
weixin_37543215
weixin_37543215 回复aaaaa67690: 谢谢,懂了
一年多之前 回复

因为你在执行if(arr[i]>100)这个语句的时候,arr[i]本身是没有值的!!!(不信你debug试试),在你后面的语句赋值之后,他才有值。如果在c语言里面,你这种情况是属于非法指针调用的。

1

你把a[i] = a[i-1] + a[i-2]放到判断语句上面

1

你先判断a[i],但是a[i]此时是没有赋值的,默认为0

1

if(arr[i]>100){
break;
}
只是跳出这一次循环,i++,再次进入下一个循环

0
weixin_37543215
weixin_37543215 break不就是跳出循环么,过一次是continue啊
一年多之前 回复

根据你的赋值情况,arr[i] 不可能大于100,所以不会执行 if(arr[i]>100)中的语句

0

首先,arr[2]==2,在for循环的判断条件根据题应该是arr[i] < 100,应该先赋值后判断,把判断条件提出来,当不符合条件时跳出循环。

 package lianxi;

public class Feibonaqi {
    public static void main(String[] args) {
        int[] arr=new int [20];
        arr[0]=arr[1]=1;
        int sum=2;
        System.out.println("输出n<100的数列");
        System.out.print(arr[0]+" "+arr[1]);
        for(int i=2;;i++){
            arr[i]=arr[i-1]+arr[i-2];
            if(arr[i]>100)
                break;
            System.out.print(" "+arr[i]);
            sum+=arr[i];
        }
        System.out.println();
        System.out.println("求和");
        System.out.println(sum);
    }
}
0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
为什么这个循环跳不出来呢?
dorn rn BytesRead = 0;rn ReadFile(ReadPipe,Buffer,ReadBuffer,&BytesRead,NULL);rn Buffer[BytesRead]= '\0';rn OemToAnsi(Buffer,Buffer);rn Memo1->Text =Memo1->Text + String(Buffer);rn while (BytesRead < ReadBuffer);rnrn用于创建管道并发送命令和接受执行的结果,为什么跳不出来??编译无错rnrnrn完整代码:rnrnbool TNmap_Win::RunDosInMemo(String strCmdLine, TMemo * mmoOut)rnrn const int ReadBuffer=2048;rn const char CommandLine[]="ping 127.0.0.1";rn //bool bRet = false;rn TSecurityAttributes Security;rn HANDLE ReadPipe,WritePipe;rn STARTUPINFO Start=sizeof(Start);rn PROCESS_INFORMATION ProcessInfo;rn OVERLAPPED olp=sizeof(olp);rn char * Buffer;rn DWord BytesRead,Apprunning,Result;rn Security.nLength= sizeof(TSecurityAttributes);rn Security.bInheritHandle =true;rn Security.lpSecurityDescriptor =NULL;rn if (!CreatePipe (&ReadPipe, &WritePipe, &Security, 0)==0)rn rn //Edit1->Text = IntToStr(GetLastError());rn Buffer= new char(ReadBuffer + 1);rn memset(&Start,sizeof(Start),0);rn Start.cb= sizeof(Start);rn Start.hStdOutput= WritePipe;rn Start.hStdError= WritePipe;rn Start.dwFlags= STARTF_USESTDHANDLES + STARTF_USESHOWWINDOW;rn Start.wShowWindow= SW_HIDE;rn if (CreateProcess(NULL,PChar(CommandLine),&Security,&Security,true,NORMAL_PRIORITY_CLASS,NULL,NULL,&Start,&ProcessInfo))rn rn CloseHandle(WritePipe);rn dorn rn dorn rn BytesRead= 0;rn ReadFile(ReadPipe,Buffer,ReadBuffer,&BytesRead,NULL);rn Buffer[BytesRead]= '\0';rn OemToAnsi(Buffer,Buffer);rn Memo1->Text= Memo1->Text + String(Buffer);rn rn while (BytesRead < ReadBuffer);rn //Apprunning->WaitForSingleObject(ProcessInfo.hProcess, 100);rn Application->ProcessMessages();rn rn while (Apprunning != WAIT_TIMEOUT);rn GetExitCodeProcess(ProcessInfo.hProcess, &Result);rn dorn rn BytesRead = 0;rn ReadFile(ReadPipe,Buffer,ReadBuffer,&BytesRead,NULL);rn Buffer[BytesRead]= '\0';rn OemToAnsi(Buffer,Buffer);rn Memo1->Text =Memo1->Text + String(Buffer);rn while (BytesRead < ReadBuffer);rn ;rn Memo1->Perform(WM_VSCROLL,SB_BOTTOM ,0);rn Memo1->SelStart=Memo1->Text.Length() ;rn Memo1->SetFocus();rn delete []Buffer;rn CloseHandle(ProcessInfo.hProcess);rn CloseHandle(ProcessInfo.hThread);rn CloseHandle(ReadPipe);rn ;rnrn
这个循环跳不出来,跟大家分享下
rntmpTitle:=‘aaaa’;rn while True dorn beginrn if tmpTitle[Length(tmpTitle)]='>' then rn beginrn while (tmpTitle[Length(tmpTitle)]<>'<') do // aaaa 这时候while里的值不会因为下列的值改变而改变rn beginrn Copy(tmpTitle,1,Length(tmpTitle)-2)rn end;rn Copy(tmpTitle,1,Length(tmpTitle)-1);rn endrn elsern Break;rn end;
do...while循环跳不出去了
code=C/C++]rnstring str;rn dorn rn cout<<"选择你要进行的操作:";rn cin>>str;rn while(str[0]>'1'||str[0]<'4');rn[/code]rnrn当前循环一直跳不出去了,我把str改成整型变量后依然不能,调试运行str得到了所期望的值,但就是跳不出循环.rnrnrn
虚拟机循环跳转在登陆界面
今天打开虚拟机,在密码正确情况下,一直在登陆界面跳转。网上一找,发现是昨天按照博客装ffmepg时,环境变量被我改了,于是开启了拯救之路。 首先安装网上的说法,先CTRL+ALT+F1进入可操作模式 输入用户名,密码,进入用户模式 然后蒙蔽发现,很多常用命令ls,vi,gedit命令都不能用了,痛苦万分之际,找到了又一篇博客 http://baobaoyangzhou.bl
java while 循环跳不出去,新手求教
public class Test rn public static void main(String args[]) throws IOExceptionrn File file = new File("dictionary.txt");rn FileReader reader=new FileReader(file);rn BufferedReader fr = new BufferedReader(reader);rn String reading;rn while((reading=fr.readLine())!=null)rn String [] source=new String[1000];rn source = reading.split("-");rn System.out.println(source[0]);rn System.out.println(source[1]);rn rn rn rn fr.close();rn rnrnrn代码如上rn[img=http://img.bbs.csdn.net/upload/201511/26/1448528194_805296.png][/img]rn这是dictionary的文件rn[img=http://img.bbs.csdn.net/upload/201511/26/1448528351_427230.png][/img]rn这是报错rn理论上当readLine到最后一行再往下循环一次时,应该判断为null跳出循环了,然而程序接着读了一行,然后打出来一行空格。rn这到底是为什么?这段代码在别人的电脑上完全可行的,我的电脑上就不行。rn难道是环境变量配置的问题?
循环跳不出去!!!!求前辈们指点。
#include rn#include rn#includernrn#define MAX_LEN 1001 rnrnrnint main(void)rnrn char input[MAX_LEN];rn int len;rn char longest[MAX_LEN];rn int longest_len;rn rn longest_len = -1;rn rn while ((fgets(input, MAX_LEN,stdin)) != NULL) 一直在此处循环跳不出去。rn rn len = strlen(input);rn if (len > longest_len)rn rn longest_len = len;rn strncpy(longest, input, MAX_LEN);rn rn rn rn if (longest_len >= 0)rn puts(longest);rn return EXIT_SUCCESS;rn
两个Activity循环跳转
不说了直接上代码: 第一个activity: public class main extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.
整理OD学习之深入理解消息循环
原文转自:逆向工程-------OD学习之深入理解消息循环  本文略加整理。以下是原文部分:" 今天我们一起深入探讨下带有对话框的消息循环。先看下图:今天我们就来研究这个图!! 为了方便研究,我就选用看雪实例里的一个程序。从图上你可以看出一个主窗口,还有一个消息框。为了程序界面的简单,还请暂时把你看到的这个消息框当成对话框。这样一来你所看到的2个元素分别就是:主窗口和一个对话框。 现
解析PHP 中跳出循环的方法,continue、break、exit,return,的区别。
continue continue 在循环结构用用来跳过本次循环中剩余的代码并在条件求值为真时开始执行下一次循环。 for($i=1;$i&amp;gt;0;$i++) { if ($i==3){ continue; }elseif($i==7){ break; } echo $...
实现从一个界面返回有导航条的界面然后再跳转到下一个界面
YBTBaseViewController是继承于UIViewController的一个父类,下方所有的控制器都直接或者间接继承于YBTBaseViewController。由于跳转到XHDemoWeChatMessageTableViewController用的是模式跳转,所以先返回去然后再用navigation跳转下一个页面,用下面方法,这样可以保留下一个页面的上方的导航条。还有其他什么原因就
在jsp中已经获取到list了,但为什么foreach循环中一直没有显示
原因在于没有引入c标签。。。。。。。。只把jsp代码抄过来了。。。。。。。。。 加上这个就好了
14条原则 (4) 把大问题划分成小问题
14条原则 (4) 把大问题划分成小问题 这条原则的全文是,"把大问题划分成小问题,然后系统地检查每一个小问题,看是不是问题的起因。再大的问题都能按这种方法分成小问题加以解决。" 把整体划分成若干局部,这正是两千多年来人类一直在执行的方针,亚里士多德就论述过了,此后也鲜有进步。看起来很简单,但是执行起来非常困难。比如,如何划分一个问题。 这一条太难了,我也只能谈几个体会,求过路的牛人们不吝补
如何让一个循环跳几个数值打印出来
for(int i =1;i<7 ;i ++) rnout.println(i);rnrn我想让i打印出两列如下rn1 2rn3 4rn5 6rnrn如何打印呀
Android开发中遇到的问题及小知识总结【一】
PhotoView+ViewPager 发生java.lang.IllegalArgumentException: pointerIndex out of range异常 描述:当PhotoView 和 ViewPager 组合时 ,用双指进行放大时 是没有问题的,但是用双指进行缩小的时候,程序就会崩掉 原因:多次触发触摸屏事件,导致对同一个事件处理的消息过多,当第一个消息已处理完事件并销毁事...
循环中的小问题!~~~~
我的代码如下:rnrn#include rn#include rn#define DATATYPE2 charrnrntypedef struct nodern DATATYPE2 data;rn struct node *next;rnLINKLIST;rnrnvoid main()rnrn LINKLIST *t,*p,head;rn char ch;rn int i=0;rn head.next=NULL;rn while((ch=getchar())!='$')rn t=(LINKLIST*)malloc(sizeof(LINKLIST));rn t->data=ch;rn t->next=head.next;rn head.next=t;rn rn p=head.next;rn while(p)rn i++;rn printf("%c",p->data);rn p=p->next;rn printf("\ni=%d\n",i);rn rnrnrnrn编译通过了,可运行时,却打印两次i的语句,不知为何,请各位指教。^_^
循环中存在的小问题
1.在实现for循环的时候,执行如下代码: #include int main(void) {      int i;      int sum = 0;           for(i=1;i sum = sum + i; printf("%d\n",sum); return 0; } 2.while(m) 这种语句,只要m != 0,语句就要继续执行。 3.在for循环中,关于break的用
qt-win-opensource-4.7.3-vs2008.part01_back
qt-win-opensource-4.7.3-vs2008.part01 第一部分不知道为什么显示不出来,所以上传一个back
JAVA循环语句和跳转语句
循环语句 while语句结构: while(表达式) { 循环体语句; } 表达式成立则执行循环体语句,且循环体语句中必须有改变表达式的值的语句,表达式的值改变后仍成立则再一次执行循环体语句,直到表达式不成立便不再执行 do -while语句: do{ 循环体语句; } while(表达式); d
编程的怪圈和通病
编程的怪圈和通病,书上的代码都看的懂,为什么还写不出来呢
vxworks代码 详细
vxworks代码 我想不出来为什么还写不够20字..
vue循环遍历本地图片显示不了的处理方法
解决方法:使用require请求图片 代码:
数组操作的两个常见小问题
/* 数组操作的两个常见小问题: ArrayIndexOutOfBoundsException:数组索引越界异常 原因:你访问了不存在的索引。 NullPointerException:空指针异常 原因:数组已经不在指向堆内存了。而你还用数组名去访问元素。 作用:请自己把所有的场景Exception结尾的问题总结一下。以后遇到就记录下来。  现象,原因,解决方案。 */
工作中遇到的一些小问题的解决方法
前端js判断身份证号的格式  function sub(){         var card= $(&quot;#card&quot;).val();         if(card=='' || $.trim(card).length ==0){             $(&quot;#searchForm&quot;).submit();         }else{             var reg = /(^...
解决办法:ios模拟器键盘不弹出
iOS模拟器运行程序,当鼠标点击UITextField 或UITextView时,键盘不弹出,控制台输出如下信息: Can't find keyplane that supports type 4 for keyboard iPhone-Portrait-NumberPad; using 563160167_Portrait_iPhone-Simple-Pad_Default 解决办法:点
LISTVIEW问题
一个小问题,新手,为什么不显示图标,请大家帮忙看一下。谢谢了。。。。。。。。。。。。。。。。。。。。。。。。。。。。
电脑日常小问题
U盘里文件全是快捷方式怎么办https://jingyan.baidu.com/article/1612d500a2f78ce20f1eee4a.html
一些有意思或者要注意的小问题
①某些高版本的Tomcat7或者8不支持URL地址出现花括号,因此地址栏无法放JSON。 ②FastJson不能序列化Class
SE反射机制的小问题
关于下面的invoke()方法,有错误,请指正rnrnimport java.lang.reflect.InvocationTargetException;rnimport java.lang.reflect.Method;rnrnrnpublic class TestReflection rnrn public static void main(String[] args) rn String s = "T";rn Class c = null;rn Object o = null;rn Method[] methods = null;rn try rn c = Class.forName(s);rn o = c.newInstance();rn methods = c.getMethods();rn catch (ClassNotFoundException e) rn e.printStackTrace();rn catch (InstantiationException e) rn e.printStackTrace();rn catch (IllegalAccessException e) rn e.printStackTrace();rn rn for(Method m :methods) rn System.out.println(m.getName());rn rn rn for(Method m :methods) rn if(m.getName().equals("mm"));rn try rn m.invoke(o,1);rn catch (IllegalArgumentException e) rn rn e.printStackTrace();rn catch (IllegalAccessException e) rn rn e.printStackTrace();rn catch (InvocationTargetException e) rn rn e.printStackTrace();rn rn rn rn rnrnrnrnclass Trn public void m() rn System.out.println("m");rn rn rn public void mm(int i) rn System.out.println(i+"mm");rn rn rn public String say() rn return "say";rn rn
java SE 两个小问题
我现在有两个问题:rn1. 我新建了一个MyJFrame继承JFrame 然后又新建了一个MyJPanel 继承JPanel rn [code=Java] public MyJFrame()rn rn setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);rn setBounds(100, 100, 450, 300);rn contentPane = new MyJPanel(); //新建的JPanelrn contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));rn contentPane.setLayout(new BorderLayout(0, 0));rn setContentPane(contentPane);rn [/code]rn但是我在JPanel中托了几个JRadioButton 但是一运行却看不见那几个按钮rn但是可以在这个面板上画东西 画的问题出现了 看下rnrn2. 我想画个拖拽的椭圆,能看的到时时变化的那种 我用变量记录了 mousePressed mouseDragged 然后在mouseDragged里加了 repaint();rn[code=Java]protected void paintComponent(Graphics g) rn g.setXORMode(Color.gray); rn switch(state)rn rn case 1:rn g.drawRect(sx, sy, ex - sx, ey - sy);rn break;rn case 2:rn g.drawOval(sx, sy, ex - sx, ey - sy);rn break;rn default:rn break;rn rn rn [/code]rn 可以画出东西来 但是问题可能出现在异或上,我发现比如画的椭圆,本来就是线框,只有在相交的地方有异或,中间的地方没有,要怎么解决:[img=http://b304.photo.store.qq.com/psb?/V10VreYt4Pw63O/WaePr.By9r9wFBvU*yMO2pklSVmW6RfJMhcI.fg9Jo8!/b/YZTnO7VIbwAAYp*LNbUUbwAA][/img]
Java SE的IO小问题
[code=java]import java.io.FileInputStream;rnimport java.io.FileOutputStream;rnimport java.io.IOException;rnimport java.io.InputStreamReader;rnimport java.io.OutputStreamWriter;rnrnpublic class IODemo rnrn public static void main(String[] args) throws IOException rn OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("mytext.txt"), "utf-8");rn osw.write("你好");rn osw.close();rn rn InputStreamReader isr = new InputStreamReader(new FileInputStream("mytext.txt"), "utf-8");rn char[] cbuf = new char[10];rn int len = isr.read(cbuf);rn System.out.println(len);rn System.out.println(new String(cbuf, 0, len));rn rnrn[/code]rn我用UTF-8存储的“你好”是六个字节, 为什么打印len是2? new String(cbuf, 0, len)怎么知道cbuf里的数据是utf-8编码?
一个有趣的小问题
有兄弟三人:大毛,二毛,三毛。有帽子五顶:三顶蓝色,两顶红色。将这五顶帽子随机发给三个 兄弟,三兄弟站成一列,后面的人能看见站在他前面的人,按大毛、二毛、三毛的顺序站好。 帽子分发好后,大毛问三毛:你知道你的帽子是什么颜色的吗? 三毛说:我不知道。
工作中碰到的小问题
工作过程中的时常会碰到一些小问题,贴出来,供大家参考1. [标题:] [ASP.NET]System.UnauthorizedAccessException: 拒绝访问。[关键字:] 异常详细信息: System.UnauthorizedAccessException:拒绝访问[问题描述:]导出数据到Excel,报错;[报错抓图][解决方法:]当试图在ASP.NET里面
一个有趣的小问题-因果理论的前奏
本文首发于本人微信公众号“IT之路漫漫”。喜欢可轻轻转载,标准出处和作者,谢谢。昨日笔者在平台给大家出了个有趣的小问题,现把问题回顾一下:假如你在参加一个show,主持人和你一起玩一个小游戏。有三扇门,分别编号1,2和3,其中两扇门背后是山羊,另外一扇门背后是汽车,当然啦,主持人对每扇门背后一清二楚。你有一次打开门的机会,如果选中了汽车,那这辆汽车就归你了。假如你先选了1号门,主持人打开了3号门,...
Java SE 小问题
刚开始学Java,之前编的程序运行都没问题,最近运行突然出问题,提示rnrn错误: 在类 Fibonacci 中找不到 main 方法, 请将 main 方法定义为:rn public static void main(String[] args)rn否则 JavaFX 应用程序类必须扩展javafx.application.Applicationrnrn很简单的一个程序,不知道为什么突然main方法错误了rnrnpublic class Fibonaccirn public static void main(String[] args) rn int n= Integer.valueOf(args[0]);rn int j[] = new int[n];rn for(int i=0;i
关于java se 的小问题
java语言程序设计第7章程序清单7-4nn```npackage Program7;nnimport Program6.Program6_10GetCharacter;nnpublic class Program7_4 nn public static void main(String[] args) n char[] chars = createArray();n n System.out.println("The lowercase letters are: ");n displayArray(chars);n n int[] counts = countLetters(chars);n n System.out.println();n System.out.println("The occurrences of each letters are: ");n displayCounts(counts);nn n n public static char[] createArray() n char[] chars = new char[100];n n for (int i = 0; i < chars.length; i++)n chars[i] = Program6_10GetCharacter.getRandomLowerCaseLetter();n n return chars;n n n public static void displayArray(char[] chars) n for (int i = 0; i < chars.length; i++) n if((i + 1) % 20 == 0)n System.out.println(chars[i]);n elsen System.out.print(chars[i] + " ");n n n n public static int[] countLetters(char[] chars) n int[] counts= new int[26];n n for (int i = 0; i < chars.length; i++) n counts[chars[i] - 'a']++;n n return counts;n n n public static void displayCounts(int[] counts) n for (int i = 0; i < counts.length; i++) n if((i + 1) % 10 == 0)n System.out.println(counts[i] + " " + (char)(i + 'a'));n elsen System.out.print(counts[i] + " " + (char)(i + 'a') + " "); n n n nnn```n在 public static int[] countLetters(char[] chars) 方法里,用for (int i = 0; i < chars.length; i++) counts[chars[i] - 'a']++;可以实现对字符的计数,没能理解。哪位大神能说明一下么。书上解释没看懂。n
如何使 while(getline(cin, str))或者 while(cin >> str)正常跳出循环继续剩余程序的执行
输入流对象cin输入的结束符在windows下是ctrl+z,所以,按下ctrl+z,然后回车,程序就正常跳出循环了。 参考: [1] 如何在while(cin&amp;amp;amp;gt;&amp;amp;amp;gt;str)跳出循环后能继续执行程序中其他的输入操作 [2] https://blog.csdn.net/baidu_35679960/article/details/80933790...
研究支付宝支付遇到的一些小问题(做个笔记 )
项目libs里加号alipay.jar   代码改好后 运行  发现报错 java.lang.NoClassDefFoundError: com.alipay.android.app.lib.ResourceMap 网上说是没有加入android_lib 于是我导入了demo包里的 android_lib  然后在我的项目里 add library 但是依旧有错误 
java:数组操作的两个常见小问题越界和空指针
package day02; public class Array { public static void main(String[]args){ int[] arr = new int[3]; // * a:ArrayIndexOutOfBoundsException:数组索引越界异常 // * 原因:你访问了不存在的索引。...
面试中遇到的有趣的小问题
频繁地malloc与free内存会有什么问题 频繁的malloc与free会造成内存碎片化的问题,从而无法进行大容量内存的分配,当然,有的库对此进行了优化,比如glibc,free掉的内存不会立即返还给操作系统,而是先给空闲内存链表,然后当再次进行malloc时会先从空闲内存链表中寻找合适的内存块。可以看看这个:http://www.valleytalk.org/wp-content/uploa
C语言中 for循环内的break语句跳出的问题
void MakeShortName(uint8 *str) { uint8 i = 0; uint8 ext[3]; memcpy(ext, &str[8], 3); for (; i < 8; i++) { if (str[i] == ' ') { break; //这里的break当满足条件
文章热词 机器学习 机器学习课程 机器学习教程 深度学习视频教程 深度学习学习
相关热词 android8.0 se权限 bootstraptable 循行数据 c# 轮循任务 为什么学python 为什么要学习python