C语言中退出for循环的方法?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言中退出for循环的方法?相关的知识,希望对你有一定的参考价值。
就是想问一下,在循环中,你不做任何输入,循环将一直运行下去,当你在键盘上按下指定键后,将退出循环,这里强调一下,按下的只能是指定键, 按任一键的那种方法我以有了,,不过你要说一下也没有关系,也好了解一下你们高手的另一些方法,也是多做一下学习嘛?
2楼那个key&0xff=='e'是怎么的,不行啊,不过按照你的思路,写成:
for(;;)
if(bioskey(1)!=0)
i=bioskey(0);
i<<8;
b=i;
b>>8;
if(b==a)
break;
printf("yjhiiiigu\nq j gd gh tx g ,");
可以了,谢谢你了……
可以用关键字break来退出for循环。
具体使用方法可以参考下例:
int i;int a[5]=0,0,0,0,0;
for(i=0; i<5; i++)
a[i]=i;
if(i==3)
break; // 当i=3时,退出for循环
// 以上程序执行完后,数组a的值为0,1,2,0,0 参考技术A 比如指定a
main()
char zhiding='a',shuru;
....;
①while(...)
...;
...;
if(scanf("%c",&shuru)==zhiding) break; //当输入的字符等于a时跳出循环
...;
②while(scanf("%c",&shuru)!='a') //当输入的字符不等于a时循环,等于时停止循环
...
同理可以知道别的字符或者数字 参考技术B #include <stdlib.h>
#include <dos.h>
#include <ctype.h>
#define KB_EXIT 16/**指定退出循环键键码**/
int main()
for(;get_key()!=KB_EXIT;)
/*segment*/
printf("EXIT!");
getch();
/*read chang on key,return 16 bit scane code */
int get_key()
union REGS rg;
rg.h.ah=0;
int86(0x16,&rg,&rg);
return rg.h.ah;
参考技术C int key;
for(;;;)
if( bioskey(1)!=0)
key= bioskey(0);
if(key&0xff == 'E')break;
本回答被提问者采纳 参考技术D ASCII码值判断和想定的键值相等后,break;
Go语言流程控制
文章目录
一、for
-
Go语言中的循环语句只支持 for 关键字,而不支持 while 和 do-while 结构,关键字 for 的基本使用方法与C语言和C++ 中非常接近
-
for 后面的条件表达式不需要用圆括号
()
括起来,Go语言还进一步考虑到无限循环的场景,让开发者不用写无聊的for(;;)
和do while(1);
,而直接简化为如下的写法sum := 0 for sum++ if sum > 100 break
-
Go语言的 for 循环同样支持 continue 和 break 来控制循环**,但是它提供了一个更高级的 break,可以选择中断哪一个循环**
for i := 0; i < 2; i++ tab: for j := 0; j < 2; j++ if j >= 1 break tab //终端里层循环 fmt.Printf("i:%d,j:%d\\n", i, j) //i:0,j:0 //i:1,j:0
-
将 if 判断整合到 for 中
for i <= 10 i++
二、for range(键值循环)
-
for range 结构是Go语言特有的一种的迭代结构,在许多情况下都非常有用,for range 可以遍历数组、切片、字符串、map 及通道(channel),一般形式为
for key, val := range coll ...
-
val 始终为集合中对应索引的值拷贝
-
一个字符串是 Unicode 编码的字符(或称之为 rune )集合,因此也可以用它来迭代字符串,返回的是ASCII值
str := "ab" for k, v := range str fmt.Printf("k:%d,v:%c\\n", k, v) //k:0,v:a k:1,v:b
-
通过 for range 遍历的返回值有一定的规律
- 数组、切片、字符串返回索引和值
- map 返回键和值
- 通道(channel)只返回通道内的值
三、switch case语句
-
概念
-
Go语言的 switch 要比C语言的更加通用,表达式不需要为常量,甚至不需要为整数,case 按照从上到下的顺序进行求值,直到找到匹配的项,如果 switch 没有表达式,则对 true 进行匹配,因此,可以将 if else-if else 改写成一个 switch
-
Go语言改进了 switch 的语法设计,case 与 case 之间是独立的代码块,不需要通过 break 语句跳出当前 case 代码块以避免执行到下一行
var a = "hello" switch a case "hello": fmt.Println(1) //1 case "world": fmt.Println(2) default: fmt.Println(0)
-
-
使用方法
-
一分支多值,当出现多个 case 要放在一起的时候,可以写成下面这样
var a = "hello" switch a case "world", "hello": fmt.Println(1) //1 default: fmt.Println(0)
-
分支表达式,case 后不仅仅只是常量,还可以和 if 一样添加表达式(这种情况的 switch 后面不再需要跟判断变量)
var r int = 11 switch case r > 10 && r < 20: fmt.Println(r) //11
-
跨越 case 的 fallthrough——兼容C语言的 case 设计(使用此关键字后,case和C中一样可以进行穿透)
var s = "hello" switch case s == "hello": fmt.Println("hello") fallthrough case s != "world": fmt.Println("world") //hello //world
-
四、使用goto退出多层循环
-
传统退出多层循环的方式
flag := false for i := 0; i < 10; i++ for j := 0; j < 10; j++ fmt.Println(i, j) if j == 1 flag = true break if flag break
-
goto退出多层循环
for i := 0; i < 10; i++ for j := 0; j < 10; j++ fmt.Println(i, j) if j == 1 goto breakHere breakHere: //goto标签 fmt.Println("done")
-
不建议在程序之中出现goto语句,跳出多层循环可以采用标签的方法
flag: for i := 0; i < 10; i++ for j := 0; j < 10; j++ fmt.Println(i, j) if j == 1 break flag //结束外层循环,也就是停止循环
以上是关于C语言中退出for循环的方法?的主要内容,如果未能解决你的问题,请参考以下文章