for循环语句中,有一个if和一个else,很显然只要当if条件不满足时,就会执行else里的语句,怎么样设计当if语句中只要满足一次就可以,而其余次不满足的遍历不需要执行else。
C#里面应该有个break关键字吧 ,满足就break 就ok了 ,时间太旧了 ,记不清了
bool f = false;
for(int i=0;i<100;++i)
{
if(a)
{
//TO DO
}
else if( f == false)
{
f = true;
//TO DO
}
}
这样只有第一次会执行else if语句块里的内容后面就都不会进入else if语句块执行内容了
你在if 里面加一个return false;终止执行
正常情况,要是不满足if也不走else的话是不合理的,但是可以用另外一个方法模仿这种过程,给if一个恒定成立条件,就是一直让他执行,满足一次后就退出循环,即可:
bool flag = true;
for(int i=0;i {
if(flag)
{
if(i>0){
break;
}
}
else i{
flag=false;
}
}
huifuceshi是不是仅放所有的if全为false的时候才执行else?那在if里弄个标志变量,for外执行不就成了
那岂不是要一直执行if条件了嘛,如果if条件里没一个满足的会执行else的,但这里永远不会执行else了
另外弄个标记变量:boolean flag = true
if(条件 && flag){
逻辑处理;
flag = false;
}
这样,就能控制满足条件的时候只有第一次才会进入if了
不清楚楼主的只满足一次是什么意思
如果是说:每次循环的话满足一次,那么if,else本身就是这样设计的
如果说是:整个循环满足if里面条件的话跳出
1.可以用break;这样可以跳出单个循环
2.可以用goto语句,这样可以直接跳到自己想执行的哪一行,或者可以自己去baidu一下其用法
3.设立flag,满足以后就对flag变化,十其不满足循环
借鉴第一个回答 我写的是java C#应该类似
bool f = false;
for(int i=0;i<100;++i)
{
if( f == false){
if(a){
//TO DO
}else{
//TO DO
}
f=true;//不管理是直接if还是else 都不再执行下一回判断
}
}
终于会写整齐一点了
伪代码,希望能帮到你!
//满足一次就可以,并执行if里的语句,如果连一次都没有满足的话才会执行else
for(int i = 0;i<10;i++){
if(满足一次){
//TODO 执行逻辑 完毕后跳出循环
break;
}else if(不满足){
//不满足就不执行,跳出循环
break;
}else{
//连一次都没有满足的话才会执行else
//TODO
}
}
我理解楼主的意思时: n次循环中,只要有一个循环满足if,那么都不要执行else.
boolean flag = true ; //是否执行else
for(int i=0;i<n;++i)
{
if(a)
{
//TO DO
flag = false ;
//按需可return 退出循环
}
else if( flag && i==n-1)
{
//TO DO
}
}
当然一般我们建议分开写 :
boolean flag = true;
for(int i=0;i<n;++i)
{
if(a)
{
//TO DO
flag = false ;
//按需可return 退出循环
}
}
//执行完后再进行是否执行else
if(flag){
//do else
}
不用else就好了
boolean hasIf = false;
for(...){//循环条件省略
if(...){//if条件省略
...//if需要执行的代码
hasIf = true;//重点地方,进入if时,将hasIf变量赋值为true
}else{
if(hasIf){
continue;//重点地方,先判断hasIf是否为true,如果是true代表之前的循环已经进入过if,则直接continue进入下次循环
}
...//else需要执行的代码
}
}
if里面写个break,当满足一次以后跳出循环
随便写的,确实不是很懂你的要求是不是这个。。。
using System;
public class Test
{
public static void Main()
{
bool f = false;
for(int i=0;i<10;++i)
{
//供测试。。。。
//(i==1||i==5||i==8)
//if(i>100)
if(i<6)
{
string str;
str="hello";
Console.WriteLine(str);
}
else if( f == false)
{
{
string str;
str="world";
Console.WriteLine(str);
f=true;
}
}
}
if(f==false)
{
string str;
str="world";
Console.WriteLine(str);
}
}
}
输出:
hello
hello
hello
hello
hello
hello
world
bool flag = true;
for(int i=0;i {
if(flag)
{
if(i>0){
break;
}
}
else i{
flag=false;
}
}
for (int i = 0; i < n; i++)
{
if ()
{
//
break;
}
else
{
//
}
}
用break跳出循环
if(条件语句)
{
……需要执行的代码
break;
}
else
{
}
我懂了,是不是比如判断100个数字里面比50 大的就输出"大",只执行一次就够了,后面51执行过后52不做判断的意思?,如果是就看看我的方法
boolean flag = true;
for (int i = 0; i < 100; i++) {
if (i < 50) {
System.out.println("xiao");
} else if (flag) {
flag = false;
System.out.println("da");
}
//这是没有执行else的时候
}
你看这样的话就只用判断一次就不会再进行判断而且执行的次数还是100次
if(条件 && flag){
逻辑处理;
flag = false;
}