java,break语句,无论是否满足条件,都会跳出for循环?

publicclassText3{publicstaticvoidmain(String[]args){inti;//指定变量出现的位置//intnumber=45;//... public class Text3{
public static void main(String[] args){
int i; //指定变量出现的位置
//int number = 45; //定义要查找的变量
int number = 110;
int[ ] arrays = {23,45,2,8,67,258,94,1,18,45,1250};
for(i=0;i<arrays.length;i++){ //遍历数组元素
if(arrays[i] == number){ //如果第i个元素的值与number变更的值相等
break; //中止循环,跳出for语句
}
}
if(i < arrays.length){ //如果for语句是因break终止,说明有符合要求的数据
System.out.println("您要查找的" + number + "是数组的第" + (i+1) + "个元素");
}else{
System.out.println("对不起,没有您要找的数据!");
}
}
}

当满足arrays[i] == number条件时,执行break语句,跳出for循环;当arrays[i] == number条件不满足时,是否也是执行了break语句,跳出for循环,进行if条件判断?那么,break语句该怎么理解呢?新手拙见,多谢老师指教
展开
 我来答
死亡天时030336
推荐于2017-12-16 · TA获得超过158个赞
知道小有建树答主
回答量:163
采纳率:50%
帮助的人:67.1万
展开全部

break:跳出当前循环。

当arrays[i] == number条件不满足时,if里面的表达式为false,所以if中的语句不会被执行,相当于这次循环什么也没做,只对i加了1。


把你的代码改成下面这样:

package test;

public class Test01 {
public static void main(String[] args) {
int i; // 指定变量出现的位置
//int number = 45; //定义要查找的变量
int number = 110;
int[] arrays = { 23, 45, 2, 8, 67, 258, 94, 1, 18, 45, 1250 };
for (i = 0; i < arrays.length; i++) { // 遍历数组元素
if (arrays[i] == number) { // 如果第i个元素的值与number变更的值相等
System.out.println("您要查找的" + number + "是数组的第" + (i + 1) + "个元素");
break; // 中止循环,跳出for语句
}
}
}
}

如果执行了break,则上面的print语句也会执行。不知这样你能不能理解?

追问
多谢大神,看着你的解释突然懂了
百度网友c10b534
2016-05-19 · 超过34用户采纳过TA的回答
知道答主
回答量:107
采纳率:0%
帮助的人:48.8万
展开全部
你的break语句是写在if条件成立之后那就是条件满足才执行啊,当满足arrays[i] == number条件时,执行break语句,跳出for循环
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
无二肆玖一
2016-05-19 · TA获得超过1046个赞
知道小有建树答主
回答量:850
采纳率:76%
帮助的人:370万
展开全部
首先,break就是用来结束整个循环体的,在你的代码中,仅当arrays[i] == number时,即找到了目标number时,才会break跳出循环,否则将一直循环到结束。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
来自木兰山兴冲冲的张辽
2019-02-20
知道答主
回答量:4
采纳率:0%
帮助的人:1137
展开全部
你i的作用域只在for循环内,所以你这样写不行。除非i在for循环之前定义。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
梦幻行业资料分享
2016-05-19 · 超过11用户采纳过TA的回答
知道答主
回答量:45
采纳率:100%
帮助的人:8.7万
展开全部
这样和你说吧,如果你的程序里if(arrays[i] == number)时,执行的不是break语句,
而直到当i=arrays.length前都没有满足arrays[i]=number,for循环也会结束,
因为for(i=0;i<arrays.length;i++),因为此时i不再小于arrays.length了,不符合执行条件了,所以结束,和break一点关系都没。
而当i<arrays.length,有满足arrays[i]=number,执行到break语句,for循环立即结束,
比如i=1时,arrays[1]=number,for循环立即结束,这样i=2……直到i=arrays.length都不会执行。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式