goto语句 switch语句
goto语句
#include <iostream> using namespace std; int main() { int i = 1; number: i++; std::cout<<"*"; if(i<10) { goto number; } std::cout<<"\n 程序结束"<<endl; return 0; }
输出:
*********
程序结束
一般不用goto语句,调试困难!因为编译器难以报错!
switch 语句
转载自http://www.cnblogs.com/zhangjs8385/archive/2011/10/06/2200059.html
switch(表达式) { case 常量表达式1:语句1; .... case 常量表达式2:语句2; default:语句; }
1.default就是如果没有符合的case就执行它,default并不是必须的.
2.case后的语句可以不用大括号. case 后面必须是常量表达式constant expressions, 错误表示如: case x .
3.switch语句的判断条件可以接受int,byte,char,short, enum不能接受其他类型.
4.一旦case匹配,就会顺序执行后面的程序代码,而不管后面的case是否匹配,直到遇见break,利用这一特性可以让好几个case执行统一语句.
原理归原理,下面是几个容易混淆的例子.
程序1:
public static void main(String[] args) { int i=5; switch(i) { case 1: System.out.println("one"); case 10: System.out.println("ten"); case 5: System.out.println("five"); case 3: System.out.println("three"); default: System.out.println("other"); } } }
输出:
five
three
other
没有遇到break,往下执行!!break可以使本次循环直接结束,continue使循环又一次重新开始!
程序2:
int i=3; switch(i) { case 1: System.out.println(1); break; case 2: System.out.println(2); break; case 3: System.out.println(3); break; default: System.out.println("default"); break; }
输出:3
下面是一个输出菜单程序:
#include <iostream> using namespace std; int main() { bool flag = false; while(1) { char choice; cout<<"0/1/2/3/4/5/6/7/8/9/q(QUIT)"; cin>>choice; switch(choice) { case '1':cout<<"您输入的是一 \n"; break; case '2':cout<<"您输入的是二 \n"; break; case '3':cout<<"您输入的是三 \n"; break; case '4':cout<<"您输入的是四 \n"; break; case '5':cout<<"您输入的是五 \n"; break; case '6':cout<<"您输入的是六 \n"; break; case '7':cout<<"您输入的是七 \n"; break; case '8':cout<<"您输入的是八 \n"; break; case '9':cout<<"您输入的是九 \n"; break; case 'q': cout<<"程序结束!! \n"; //当输入q的时候,把flag赋值为rure flag = true; break; default:cout<<"您输入的不是0到9之间的有效数字,请重新输入:"; } if (flag == true) { break; } } return 0; }