c语言为什么会执行for里面else加上break的和continue条件判断错误的哈又不会执行else

#include<stdio.h>
int main(){
int a[10],i,o,count=0;//a数组i控制循环o输入查找数
printf("输入十个整数");
for(i=0;i<10;i++){
scanf("%d",&a[i]);//循环输入值
}
printf("输入要找的数");
scanf("%d",&o);
for(i=0;i<=10;i++){
count++;
if(o==a[i]){
printf("%d",count);
}else {
continue;
printf("没有这个数");
}
}
}

首先,你的问题我读了半天没读懂,不过你贴的代码我看懂了,应该是输入一个数字,去看能不能在数组中找到,然后返回这个数字在数组中的位置吧。

我把你第二个for循环改了一下,如果循环变量i到10了,说明数组肯定没有这个数字,因为长度为10的数组下标最多到9。如果有数字,那就返回(下标+1),在单独列一个count没有必要。

for (i = 0; i <= 10; i++)
{
if (i == 10)
{
printf("没有这个数");
break;
}
if (o == a[i])
{
printf("%d", i + 1);
break;
}
}追问

我的意思是在循环里面用if但是不管满不满足条件一都会去执行else的语句,就算在语句1和2里加上break和continue也会优先执行else,如果满足了条件的话会优先执行语句2在执行执行语句1

追答

if和else只会执行其一,如果满足if的条件,那肯定会执行if分支下的语句,不可能执行els;反过来如果if条件不成立,才会去执行else。你所说的优先执行else是不可能的,必须判断条件,再决定执行if还是else。
如果你很想先执行else里的语句,就把它单独提出来,放到if判断语句之前,这样程序无论如何都会执行,然后再去判断if条件。但是就你的程序而言,把continue放到for循环的第一句是没有意义的。

温馨提示:内容为网友见解,仅供参考
第1个回答  2019-08-22
因为continue在printf语句的前面,判断符合else语句时先执行continue语句,然后跳到了下一个循环,所以你那个printf语句是不会被执行的

c语言为什么会执行for里面else加上break的和continue条件判断错误的哈又...
首先,你的问题我读了半天没读懂,不过你贴的代码我看懂了,应该是输入一个数字,去看能不能在数组中找到,然后返回这个数字在数组中的位置吧。我把你第二个for循环改了一下,如果循环变量i到10了,说明数组肯定没有这个数字,因为长度为10的数组下标最多到9。如果有数字,那就返回(下标+1),在...

C语言:break语句和if语句在for循环中的使用问题?
不会执行,原因是两层for循环,break跳出了里层的循环,这时候会跳转到第一个循环那边。第二个if判断语句属于第一个循环,而不是第二个循环,第二个循环只包括一个if语句和break。

c语言写for循环时,要用break,假如break写在if外面,但是写在for循环内...
因为,你的break写到if外面去了,也就是说,这种情况下,循环永远只执行一遍!因为,只要进循环,无论if的条件如何,break必执行到!无论输入的数是否为素数,都不再进行循环判断!如果写到if里面,只有if条件成立,才跳出循环!即,只有为素数时,才跳出循环!第二个代码,每次执行了for之后,都会执行b...

C语言for循环中用else套用break;出错: error: break statement not withi...
while循环后面多了个分号,导致后面的循环内容不在循环里面,造成break处出现错误。break statement not within loop or switch意思是:break语句不在循环内。for循环是编程语言中一种循环语句,而循环语句由循环体及循环的判定条件两部分组成,其表达式为:for(单次表达式;条件表达式;末尾循环体){中间循环...

...break不执行表达式3而continue执行表达式3对吗?
break是结束,整个儿放循环,在当前位置直接跳出for循环。而continue是结束本次循环,接着执行下一个循环。也就是在continue和break在本次循环后面的语句都不会执行。

c语言for循环中的if...else语句怎样执行的啊?
在执行循环时,如果条件一满足,不会执行语句二。记住if和else不会同时执行的,你按照字面意思理解就可以了,如果满足这个条件就执行{...},否则就执行{...}。

C语言中,break和continue都是跳出循环,有啥区别?
例如,在while或do-while循环中,"continue"之后会直接对循环条件进行再次判断,而在for循环中,执行"continue"后会先更新循环变量,再进行条件判断。在嵌套循环中,"break"将同时结束内层和外层循环。至于在switch语句中,"continue"在多重选择的情况下,仅会跳过当前case的剩余部分,而"break"则会结束...

C语言的题 感觉自己做得好乱诶 乱就乱在continue退出本次循环走不走k+...
记住,break和continue都只能影响一层,break只能中断它所在的这一层的switch或循环,continue只能跳过并继续这一层的循环(也就是说如果有多层循环的话,内层的break或continue只影响里面的循环,外层不受影响,如果是switch中的break同理)switch(c++)中括号里面取的值是c加1之前的值,case里面的k++由于...

for和do-while循环以及break和continue语句
在C语言的循环结构中,for和do-while循环以及break和continue语句扮演着关键角色。for循环以其清晰的语法和易于理解的特点,常用于大量循环操作,其流程包括初始化、条件判断和变量更新。相比之下,do-while循环虽然使用较少,但它的特殊之处在于至少执行一次循环体,随后根据条件判断决定是否继续。while和fo...

C语言 初级break continue的使用
在C语言中,break和continue是两种用于控制循环流程的关键语句。break的主要作用是中断当前的循环,无论是在for、while还是do-while循环中,一旦遇到break,程序会立即跳出循环体,不再执行后续的循环语句。当break出现在switch语句内部时,它仅退出当前的case分支。而continue则不同,它用于跳过本次循环的剩余...

相似回答