while语句跳出循环问题

在while语句中,一开始满足条件进入循环,程序运行到一半又不满足了,这时候是直接跳出循环吗?

c

6个回答

continue啊 跳出本次循环,但依然执行上一级循环

这是你的业务规则,你问自己,或者你们的需求人员

Sure! 在进行不满足的那次判断之后跳出循环

qq_34343914
Estranged? 回复鬼仁: 那就是说要把while中余下的程序执行玩再判断是否满足
大约 4 年之前 回复

可以直接跳出,写一个flag,不满足了break就可以了

一旦while条件为false,那么这个循环操作就结束了哦。

while这个循环结构:
while(条件){
if(){}
else(){}

主要是:你while中的:“条件“来判断是否循环会继续进行/退出循环

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
请问怎么跳出while循环

输入“End”后还是要我继续输入,没有结束循环 import java.util.Scanner; public class Main_剪刀石头布 { public static void main(String[] args) { // TODO Auto-generated method stub Scanner in = new Scanner(System.in); String []p= {"JianDao","ChuiZi","Bu"}; int n =in.nextInt(),cnt=0,i=0; String [] P=new String [100]; String c; c=in.next(); while(c!="End") { ++i; P[i]=c; ++cnt; c=in.next(); } for (int j = 1; j <=cnt; j++) { if(j%(n+1)==0) System.out.println(P[j]); else { if(P[j]=="JianDao") System.out.println("ChuiZi"); else if(P[j]=="ChuiZi") System.out.println("Bu"); else System.out.println("JianDao"); } } } }

为什么用do-while会跳出循环啊?

我先选择A进入子菜单,然后选择D返回上一界面,结果会先提示输入有误再返回 我调试了一下,发现是最下面,也就是这段代码最外循环的else里的语句, 哪里出错了啊 ``` case '3': do{ system("cls"); _3menu( ); char er; printf("\t\t\t选择:"); scanf(" %c",&er); getchar(); if(er=='A') { do{ system("cls"); _3Amenu(); char rt; scanf(" %c",&rt); if(rt=='A') { man_set(); xunhuan_8=true; xunhuan_1=true; xunhuan_2=true; xunhuan_7=true; } else if(rt=='B') { man_modify(); xunhuan_8=true; xunhuan_1=true; xunhuan_2=true; xunhuan_7=true; } else if(rt=='C') { man_delete(); xunhuan_8=true; xunhuan_1=true; xunhuan_2=true; xunhuan_7=true; } else if(rt=='D') { xunhuan_8=false; fflush(stdin); xunhuan_1=true; xunhuan_2=true; xunhuan_7=true; } else { printf("输入有误!"); getch(); xunhuan_8=true; xunhuan_1=true; xunhuan_2=true; xunhuan_7=true; } } while(xunhuan_8); } if(er=='B') { do{ system("cls"); _3Bmenu(); char ty; scanf(" %c",&ty); if(ty=='A') { system("cls"); room_set(); xunhuan_9=true; xunhuan_1=true; xunhuan_2=true; xunhuan_7=true; } else if(ty=='B') { system("cls"); room_modify(); xunhuan_9=true; xunhuan_1=true; xunhuan_2=true; xunhuan_7=true; } else if(ty=='C') { system("cls"); room_delete(); xunhuan_9=true; xunhuan_1=true; xunhuan_2=true; xunhuan_7=true; } else if(ty=='D') { xunhuan_9=false; xunhuan_1=true; xunhuan_2=true; xunhuan_7=true; } else { printf("输入有误!"); getch(); xunhuan_9=true; xunhuan_1=true; xunhuan_2=true; xunhuan_7=true; } } while(xunhuan_9); } if(er=='C') { do{ system("cls"); _3Cmenu(); char yu; scanf(" %c",&yu); if(yu=='A') { system("cls"); hotel_set(); xunhuan_10=true; xunhuan_1=true; xunhuan_2=true; xunhuan_7=true; } else if(yu=='B') { system("cls"); hotel_modify(); xunhuan_10=true; xunhuan_1=true; xunhuan_2=true; xunhuan_7=true; } else if(yu=='C') { system("cls"); hotel_delete(); xunhuan_10=true; xunhuan_1=true; xunhuan_2=true; xunhuan_7=true; } else if(yu=='D') { xunhuan_10=false; xunhuan_1=true; xunhuan_2=true; xunhuan_7=true; } else { printf("输入有误!"); getch(); xunhuan_10=true; xunhuan_1=true; xunhuan_2=true; xunhuan_7=true; } } while(xunhuan_10); } else if(er=='D') { system("cls"); xunhuan_7=false; xunhuan_1=true; xunhuan_2=true; } else { printf("输入有误!"); xunhuan_1=true; xunhuan_2=true; xunhuan_7=true; } } while(xunhuan_7); break; ```

如何利用键盘输入字符来跳出一个循环输出的while语句?

``` while (true) { cout << "TIMER: " << getSecond() << " s" << endl; displayTime(); if (getSecond() == 60) { setSecond() = 0; setMinute()++; if (getMinute() == 60) { setMinute() = 0; setHour()++; if (getHour() == 24) { setHour() = 0; setDay()++; } } } setSecond()++; Sleep(1000); system("cls"); } ``` 我想实现一个计数器和转换时间格式的功能,但发现只能点右上角的X来结束程序,于是向请教一下,应当如何改进

while循环为什么跳出了还会再运行一次 新人求知道

实体类 package com.pij.bean; public class bean { private int num = 501; public int getNum() { return num; } public void setNum(int Num) { this.num = num - Num; } } 实现接口 package com.pij.imp; import com.pij.bean.bean; public class imp implements Runnable { bean bn = new bean(); @Override public void run() { bea(50); } public synchronized void bea(int num) { while (true) { if (bn.getNum() >= num) { System.out.println("你在使用网络系统调用的货物预定"); System.out.println("现存备货:" + bn.getNum()); try { Thread.sleep(1000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.err.println(Thread.currentThread().getName() + "货物调用预定成功"); bn.setNum(num); } else { System.out.println("仓库备货不足"); System.out.println("现存货数量:" + bn.getNum()); break; } } } } 测试类 package com.pij.text; import com.pij.imp.imp; public class test { public static void main(String[] args) { imp a = new imp(); Thread b1 = new Thread(a); Thread b2 = new Thread(a); b1.setName("五厂XX"); b2.setName("二厂XXX\t\t\t\t"); b1.start(); b2.start(); } }

关于c#跳出循环的问题,谢谢

请问c#有没有类似java的跳出循环标签的功能 比如 A: for(int i=1;i<10;i++) { for (int j = 0; j < 5; j++) { if (j==2) { continue A; } } } c#里这么输入会报错 错误 1 只有 assignment、call、increment、decrement、await 和 new 对象表达式可用作语句 错误 2 当前上下文中不存在名称“A” 错误 3 应输入 ;

C语言中while循环带上scanf语句

各位老师,本人新手上路,碰到下面的问题困扰: 语句目标为:输入字母,判断是否为A或者B,如果是,跳出循环,如果不是,继续输入 循环相关程序如下: char sp; while (1) { scanf("%c",&sp); if (sp == A || sp == B) break; printf("输入有误,请重输:\n,%c",sp); printf("%c",sp); } 此循环无法生效,然后我改成后面的,发现到scanf处就失效: char sp = ‘c’; while (1) { if (sp == A || sp == B) break; printf("输入有误,请重输:\n,%c",sp); printf("%c",sp); scanf("%c",&sp); } 是否while循环里面是不能使用scanf函数的,我应该怎么改才能正确运行. 后面我发现了加上getchar后就没问题了 scanf("%c",&sp); getchar(); while (1) { if (sp == 'A' || sp == 'B') break; printf("输入有误,请重输:"); scanf("%c",&sp); getchar(); } 希望老师们解释下

c++循环语句while中为什么无法使用cin>>语句进行循环输入?

运行时出错,第一遍循环可以输入信息,然后一直循环输出 cout<<"是否继续添加?(Y/N)";语句 ![图片说明](https://img-ask.csdn.net/upload/201812/08/1544276503_500570.jpg) 运行结果 ![图片说明](https://img-ask.csdn.net/upload/201812/08/1544276952_496885.png)

以下叙述正确的是()以下叙述正确的是()

以下叙述正确的是()。 A:do-while语句构成的循环不能用其它语句构成的循环来代替. B:do-while语句构成的循环只能用break语句退出. C:用do-while语句构成的循环,在while后的表达式为非零时结束循环. D:用do-while语句构成的循环,在while后的表达式为零时结束循环

请教IDEA while循环debug问题

# 想调试一个使用JDBC从数据库读取Blob类型数据的程序,但是试了很多次debug不了其中的while循环 ## 在Servlet实现类的doPost方法中试了一个简单的while循环,发现可以调试 ```java int a=11; int i=0; while (++i<a){ System.out.println(i); } ``` ![图片说明](https://img-ask.csdn.net/upload/201910/02/1570014345_777656.png) ## 代码 ### Servlet doPost ``` String sql = "SELECT * FROM resource WHERE id = ?"; String[] path = new String[1]; path[0] = "F:\\program design\\JavaWeb\\web\\resource\\2.png"; //下面的方法传入数据库连接,接收数据的类,sql语句以及要将数据库中提取的文件放入的路径和sql语句中?的替代 //返回接收数据的类的实例的集合 ArrayList<Datas> arrayList = JDBC.searchBolb(connection, Datas.class, sql, path, 1); PrintWriter writer = response.getWriter(); for (Datas d : arrayList) { writer.println(d); } ``` ### JDBC ```java //重点请看while循环,其他错误只要能调试while循环我自己慢慢找 public static <T> ArrayList<T> searchBolb(Connection connection, Class<T> clazz, String sql, String[] resourcePath, Object... args) { //数据库表中最后一个字段为Blob类型 //输出类中封装Blob资源输出地址 PreparedStatement ps = null; ResultSet result = null; ResultSetMetaData rsmd = null; InputStream is = null; FileOutputStream fos = null; int resourcePathNumber = 0; ArrayList<T> collection = new ArrayList<T>(); try { ps = connection.prepareStatement(sql); for (int i = 0; i < args.length; i++) { ps.setObject(i + 1, args[i]); } result = ps.executeQuery(); rsmd = result.getMetaData(); while (result.next()) { int columnCount = rsmd.getColumnCount(); T t = clazz.getDeclaredConstructor().newInstance(); for (int i = 0; i < columnCount - 1; i++) { Object columnValue = result.getObject(i + 1); String columnLabel = rsmd.getColumnLabel(i + 1); Field field = clazz.getDeclaredField(columnLabel); field.setAccessible(true); field.set(t, columnValue); } Blob blob = result.getBlob(columnCount); String blobLabel = rsmd.getColumnLabel(columnCount); Field field = clazz.getDeclaredField(blobLabel); field.setAccessible(true); field.set(t, resourcePath); is = blob.getBinaryStream(); fos = new FileOutputStream(resourcePath[resourcePathNumber++]); byte[] buffer = new byte[1024]; int len; while ((len = is.read(buffer)) != -1) { fos.write(buffer, 0, len); } collection.add(t); } } catch (SQLException | IOException | NoSuchFieldException | NoSuchMethodException | IllegalAccessException | InstantiationException | InvocationTargetException e) { e.printStackTrace(); } finally { try { ps.close(); is.close(); fos.close(); } catch (SQLException | IOException e) { e.printStackTrace(); } if (collection == null) { System.out.println("Failed to search"); } return collection; } } ```` ![图片说明](https://img-ask.csdn.net/upload/201910/02/1570015047_843639.png) ![图片说明](https://img-ask.csdn.net/upload/201910/02/1570015068_774806.png) <br> 把断点设在144行(while循环第一行),运行到for循环第一行出错(用的f8,不进入方法体)(没有while循环过,这是第一次for循环),这里的错误是结果集关闭,但是显然并没有任何操作使之关闭(我试了另外一个没有问题的方法,报的同样的错误),怀疑是刚开始debug时就已经进行完了while循环,导致结果集关闭 <br> 请问需要把断点设在哪里,或者是怎么样才能解决上述问题?3Q

python3 关于while语句的问题

num=0 while num<10: num+=2 print(num) print("GoodBye!") 在这个循环体中,到了num=10是明显不等于10,为什么不是跳出循环体直接输出GoodBye,而是还要输出10。![图片说明](https://img-ask.csdn.net/upload/201904/01/1554122793_50426.png)

解决一个计算器跳出循环

代码: #include<stdio.h> #include <stdlib.h> #include<malloc.h> #define N 100 //定义接收字符串大小 typedef struct StackNode { int num_ch; //数字和符号都用int存储 struct StackNode *next; } StackNode; //创建一个链栈 注意我的栈最后一个元素无意义但必须存在 因为方便在表达式末尾进行操作 StackNode *CreatStackNode() { StackNode *q=(StackNode *)malloc(sizeof(StackNode)); if(q==NULL)return NULL; q->num_ch =0; q->next=NULL; return q; } //直接给最后一个元素赋值 并新建一个无意义的结点作为最后元素 int push(StackNode *p,int num) { while(p->next!=NULL) { p=p->next; } p->num_ch=num; StackNode *q=(StackNode *)malloc(sizeof(StackNode)); q->num_ch =0; q->next=NULL; p->next=q; return 0; } // 最后一个无意义的直接free // 倒数第二个next置空,返回倒数第二的值 int Pop(StackNode *p) { int tmp; if(p->next==NULL) return -1;//只有头,无值时无法Pop while(p->next->next!=NULL) { p=p->next; } tmp=p->num_ch; free(p->next); p->num_ch = 0; p->next = NULL; return tmp; }//获取栈顶元素 int GetTop(StackNode *p) { while(p->next->next!=NULL) { p=p->next; } return p->num_ch; } //判栈空 如果只剩一个结点(这是个无意义的) 那么就为空 int Empty(StackNode *p) { if(p->next==NULL) return 1; return 0; } //显示栈的所有元素 void DispStack(StackNode *p) { if(p->next==NULL) return;//只有头,无值时无法Pop while(p->next!=NULL) { printf("%d,",p->num_ch); p=p->next; } putchar(10); } //计算int变量的长度 例如1234长度为4 int sum_int(int in) { int len=0; while(in!=0) { len++; in/=10; } return len; } // 符号优先级判断 返回: 1(opt1>opt2) -1(opt1<opt2) 0(opt1=opt2) 注意符号的ASSIC码:43(+) 45(-) 42(*) 47(/) int opt_max(int opt1,int opt2) { if(42==opt1||47==opt1) { if(43==opt2||45==opt2) { return 1; } return 0; } else { if(42==opt2||47==opt2) { return -1; } return 0; } } //计算a和b在mode符号的运算结果 int cal(int a,int b,int mode) { int re=-1; switch(mode) { case 43: re=a+b; break; case 45: re=a-b; break; case 42: re=a*b; break; case 47: re=a/b; break; default: break; } return re; } //计算表达式的值 int cal(char *str) { int num1,num2,opt1,opt2; StackNode *num,*opt; num=CreatStackNode(); //创建数字栈 opt=CreatStackNode(); //创建符号栈 while(1) { if('\0'==*str) // 读到字符串末尾 { //如果最后一个符号是*或/则会剩下三个数字和两个符号 //如果最后一个符号时+或-则会剩下两个数字和一个符号 //结果只是算两次和算一次的问题 opt1=GetTop(opt); if((42==opt1)||(47==opt1)) { num2=Pop(num); num1=Pop(num); opt2=Pop(opt); push(num,cal(num1, num2, opt2)); } num2=Pop(num); num1=Pop(num); opt2=Pop(opt); num1=cal(num1, num2, opt2); break; } else if('('==*str) // 读到(,注意进栈的时(的ASSIC码40 { push(opt,(int)'('); str++; } else if(')'==*str) // 只是判断)不进入栈 { while(1) // 本循环会计算与)匹配的最近的(地方为之 { if(40==GetTop(opt)) // 如果当前栈顶是(则弾栈退出 { Pop(opt); break; } else // 否则弾两个数字,一个符号进行运算 { // 结果入操作数栈 num2=Pop(num); num1=Pop(num); opt2=Pop(opt); push(num,cal(num1, num2, opt2)); } } str++; } else if(('9'>=*str)&&('0'<=*str)) // 如果取到数字则将数字进入栈 { sscanf(str,"%d",&num1); push(num,num1); //将指针移动到当前数字到后面 str=str+sum_int(num1); } else // 取到一个符号 { opt1=(int)*str++; while(1) { if( (1==Empty(opt))||(40 == GetTop(opt)) ) // 如果栈不空则遇到(则进入取到的符号 { // 为空时也要进栈 push(opt,opt1); break; } else { //取出符号栈顶元素 opt2=GetTop(opt); if(0<opt_max(opt1,opt2)) // 当前获取的符号优先级大于栈顶符号 { // 则进栈 push(opt,opt1); break; } else // 栈顶优先级高或者平级则 { // 取两个数和栈顶符号进行运算 num2=Pop(num); num1=Pop(num); opt2=Pop(opt); push(num,cal(num1,num2,opt2)); } } } } } free(num); free(opt); return num1; } int main() { int flag=1; char buf[N]={0}; printf("\t\t********************************$\n"); printf("\t\t* 欢迎您使用本计算器 *\n"); printf("\t\t********************************$\n"); printf(" 作者:张治政\n"); printf("请输入一个运算式(eg:8+6*(9-3)+8/4注意括号为英文式的!):\n"); printf("当你想结束的时候输入一个纯数字就结束了!\n"); while(flag==1) { scanf("%s",buf); if(getchar()=="0000") { flag=0; } printf("%s=%d\n",buf,cal(buf)); } return 0; }

一个关于c++while死循环的问题

程序部分代码如下: #include <iostream> using namespace std; double fx(double x) { return (x*x - x - 2); } const double esp = 1.e-5; double L, R, M, a; double fL, fM; double root(double); int main() { cout<< "单调区间左端点L="; cin >> L; cout << "单调区间右端点R="; cin >> R; cout << "请输入求解步长:"; cin >> a; while (1) { cout << " 0000" << endl; if (fx(L)*fx(L + a) > 0) L = L + a; else { L = L - a; cout << "①解为:" << root(L) << endl; break; } if (L > R) { cout << "非有解区间!"; break; } } cout << "11111" << endl;//程序没有运行这一句(当a为0.1之类的数,1等特殊数可以) } 同学的问题,百思不得其解。程序若a=0.1时,,运行几次后程序就挂了??循环后紧接着的cout一句也没有执行。

程序执行到WHILE循环不执行了直接退出

public static void main(String[] args) { ResizingArrayStack<String> stack = new ResizingArrayStack<String>(); while (!StdIn.isEmpty()) { String item = StdIn.readString(); if (!item.equals("-")) stack.push(item); else if (!stack.isEmpty()) StdOut.print(stack.pop() + " "); } StdOut.println("(" + stack.size() + " left on stack)"); } 这是其中一段代码,大体就是读一个文件里的字符串,为什么我调试发现每次读完最后一个字符串后,程序就在那个WHILE循环那退出了,不会执行循环外那条输出语句即 StdOut.println("(" + stack.size() + " left on stack)"); 。求问可能的原因是什么。文件格式就是TXT文档,里面比如是i have an apple,读到APPLE后就停在循环那了

java switch语句break不能退出循环

外层加了一个循环为了能循环选择,但是加了之后case9 和default的break不能推出循环了,求解!!! do { int i=0; double area,s,a,b,c=0; System.out.println("输入要使用的图形 :1.圆形 2.矩形 3.三角形 9.退出"); Scanner sc =new Scanner(System.in); int x =sc.nextInt(); switch(x) { case 1: System.out.println("圆形"); System.out.println("请输入圆形的半径"); Scanner sr = new Scanner(System.in); Circle.r=sr.nextFloat(); Circle Circle=new Circle(); System.out.println("周长是 "+Circle.CircleSize()); System.out.println("面积是 "+Circle.CircleLenth()); break; case 2:System.out.println("矩形"); System.out.println("请输入长和宽"); Scanner st = new Scanner(System.in); Juxing.a=st.nextFloat(); Juxing.b=st.nextFloat(); Juxing Juxing=new Juxing(); System.out.println("周长是 "+Juxing.JuxingLenth()); System.out.println("面积是 "+Juxing.JuxingSize()); break; case 3:System.out.println("三角形"); System.out.println("请输入边长"); Scanner sc1 =new Scanner(System.in); System.out.println("输入三角形的三边"); a = sc1.nextInt(); b = sc1.nextInt(); c = sc1.nextInt(); s =(a+b+c)/2f; double S = (double) Math.sqrt(s*(s-a)*(s-b)*(s-c));// 海伦公式 if (a+b>c && b+c>a && a+c>b) { System.out.println(S); } else { System.out.println("不成立三角形"); } break; case 9 :System.out.println("程序退出"); break; default:System.out.println("输入错误"); break; } }while(true); 外层加了一个循环为了能循环选择,但是加了之后case9 和default的break不能推出循环了,求解!!!

请问这里的break能跳出for循环吗?

for (j = 2; j <= a; j++) { if (a%j == 0) { cout << j << " "; break; } }

如何用简短的代码写出string为空就跳出循环,请好心大佬指点。。

``` #include <iostream> #include <string> using namespace std; void strcount(const string); int main() { string input; cout<<"enter a line:"<<endl; cin>>input; while(!input.empty()) { while(cin.get()!='\n') continue; strcount(input); cout<<"enter next line (empty line to quit):"<<endl; cin>>input; } cout<<"bye"<<endl; return 0; } void strcount(const string str) { static int total=0; int count=0; cout<<"\""<<str<<"\"contains "; count=str.length(); total+=count; cout<<count<<"characters"<<endl; cout<<total<<"characters total"<<endl; } ``` 如何能用简短的语句达到输入为空就跳出循环呢...执行完一次以后我敲回车只是光标换行,如何能将string类的对象设置为空?我用C-free和DEV都试过了都是这个样子![图片说明](https://img-ask.csdn.net/upload/201812/31/1546237040_816862.png)

java中,break的作用是跳出当前循环还是跳出当前作用域?哪个才是严瑾而正确的?

java中,break的作用是跳出当前循环还是跳出当前作用域?哪个更正确一点呢?小白学这里做练习遇到困难了,请大牛们指教一下。谢谢大家!

初学C++,关于While循环的一个小问题

int main() { int a = 0; int sum = 0; while(std::cin>>a) sum += a; std::cout << "sum=" <<sum<< std::endl; return 0; } 此时输入一个非整形数如9.9,则应当跳出循环才对,然而Sum仍然会加上9。 有些无法理解,请求各位指点

求助 怎么让while循环中有输入的时候让程序完成后停下来 题目中没有结束标志 晕

#include <iostream> #include<stdio.h> #include<stdlib.h> using namespace std; void output(); int check(); int a[1000]={0},n=0,flag=1,g; char b[50],c[50],d; int init(); void search(int m); int main() { while(init()) { cout <<"["<<endl; search(0); cout <<"]"<<endl; flag=1; n=0; g=0; } return 0; } int check() { int k=0,top=-1,m=0,r=0; char st[50]; flag=1; for (int i=0;i<n;i++) { if (a[i]==1)k++; } if (k==n/2) { for (int i=0;i<n;i++) { if (a[i]==1) top++,st[top]=b[r],r++; else{ if (st[top]==c[m]) { m++; top--; } else { flag=0; break; } } } } else flag=0; free(st); return (flag); } int init () { g=1; int k=0; char h; while((d=getchar())!='\n') { b[k++]=d,n++; } k=0; while((d=getchar())!='\n') { c[k++]=d,n++; } return g; } void search(int m) { if(m==n){ check(); if (flag) output(); } else { a[m]=1; search(m+1); a[m]=0; search(m+1); } } void output() { for (int i=0;i<n;i++) { if (a[i]==0) cout <<"o"; else cout <<"i"; } cout <<endl; }

在中国程序员是青春饭吗?

今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...

程序员请照顾好自己,周末病魔差点一套带走我。

程序员在一个周末的时间,得了重病,差点当场去世,还好及时挽救回来了。

和黑客斗争的 6 天!

互联网公司工作,很难避免不和黑客们打交道,我呆过的两家互联网公司,几乎每月每天每分钟都有黑客在公司网站上扫描。有的是寻找 Sql 注入的缺口,有的是寻找线上服务器可能存在的漏洞,大部分都...

搜狗输入法也在挑战国人的智商!

故事总是一个接着一个到来...上周写完《鲁大师已经彻底沦为一款垃圾流氓软件!》这篇文章之后,鲁大师的市场工作人员就找到了我,希望把这篇文章删除掉。经过一番沟通我先把这篇文章从公号中删除了...

总结了 150 余个神奇网站,你不来瞅瞅吗?

原博客再更新,可能就没了,之后将持续更新本篇博客。

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

MySQL数据库面试题(2020最新版)

文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引与InnoDB索引的区别?InnoDB引擎的4大特性存储引擎选择索引什么是索引?索引有哪些优缺点?索引使用场景(重点)...

如果你是老板,你会不会踢了这样的员工?

有个好朋友ZS,是技术总监,昨天问我:“有一个老下属,跟了我很多年,做事勤勤恳恳,主动性也很好。但随着公司的发展,他的进步速度,跟不上团队的步伐了,有点...

我入职阿里后,才知道原来简历这么写

私下里,有不少读者问我:“二哥,如何才能写出一份专业的技术简历呢?我总感觉自己写的简历太烂了,所以投了无数份,都石沉大海了。”说实话,我自己好多年没有写过简历了,但我认识的一个同行,他在阿里,给我说了一些他当年写简历的方法论,我感觉太牛逼了,实在是忍不住,就分享了出来,希望能够帮助到你。 01、简历的本质 作为简历的撰写者,你必须要搞清楚一点,简历的本质是什么,它就是为了来销售你的价值主张的。往深...

优雅的替换if-else语句

场景 日常开发,if-else语句写的不少吧??当逻辑分支非常多的时候,if-else套了一层又一层,虽然业务功能倒是实现了,但是看起来是真的很不优雅,尤其是对于我这种有强迫症的程序"猿",看到这么多if-else,脑袋瓜子就嗡嗡的,总想着解锁新姿势:干掉过多的if-else!!!本文将介绍三板斧手段: 优先判断条件,条件不满足的,逻辑及时中断返回; 采用策略模式+工厂模式; 结合注解,锦...

离职半年了,老东家又发 offer,回不回?

有小伙伴问松哥这个问题,他在上海某公司,在离职了几个月后,前公司的领导联系到他,希望他能够返聘回去,他很纠结要不要回去? 俗话说好马不吃回头草,但是这个小伙伴既然感到纠结了,我觉得至少说明了两个问题:1.曾经的公司还不错;2.现在的日子也不是很如意。否则应该就不会纠结了。 老实说,松哥之前也有过类似的经历,今天就来和小伙伴们聊聊回头草到底吃不吃。 首先一个基本观点,就是离职了也没必要和老东家弄的苦...

2020阿里全球数学大赛:3万名高手、4道题、2天2夜未交卷

阿里巴巴全球数学竞赛( Alibaba Global Mathematics Competition)由马云发起,由中国科学技术协会、阿里巴巴基金会、阿里巴巴达摩院共同举办。大赛不设报名门槛,全世界爱好数学的人都可参与,不论是否出身数学专业、是否投身数学研究。 2020年阿里巴巴达摩院邀请北京大学、剑桥大学、浙江大学等高校的顶尖数学教师组建了出题组。中科院院士、美国艺术与科学院院士、北京国际数学...

男生更看重女生的身材脸蛋,还是思想?

往往,我们看不进去大段大段的逻辑。深刻的哲理,往往短而精悍,一阵见血。问:产品经理挺漂亮的,有点心动,但不知道合不合得来。男生更看重女生的身材脸蛋,还是...

程序员为什么千万不要瞎努力?

本文作者用对比非常鲜明的两个开发团队的故事,讲解了敏捷开发之道 —— 如果你的团队缺乏统一标准的环境,那么即使勤劳努力,不仅会极其耗时而且成果甚微,使用...

为什么程序员做外包会被瞧不起?

二哥,有个事想询问下您的意见,您觉得应届生值得去外包吗?公司虽然挺大的,中xx,但待遇感觉挺低,马上要报到,挺纠结的。

当HR压你价,说你只值7K,你该怎么回答?

当HR压你价,说你只值7K时,你可以流畅地回答,记住,是流畅,不能犹豫。 礼貌地说:“7K是吗?了解了。嗯~其实我对贵司的面试官印象很好。只不过,现在我的手头上已经有一份11K的offer。来面试,主要也是自己对贵司挺有兴趣的,所以过来看看……”(未完) 这段话主要是陪HR互诈的同时,从公司兴趣,公司职员印象上,都给予对方正面的肯定,既能提升HR的好感度,又能让谈判气氛融洽,为后面的发挥留足空间。...

面试:第十六章:Java中级开发(16k)

HashMap底层实现原理,红黑树,B+树,B树的结构原理 Spring的AOP和IOC是什么?它们常见的使用场景有哪些?Spring事务,事务的属性,传播行为,数据库隔离级别 Spring和SpringMVC,MyBatis以及SpringBoot的注解分别有哪些?SpringMVC的工作原理,SpringBoot框架的优点,MyBatis框架的优点 SpringCould组件有哪些,他们...

面试阿里p7,被按在地上摩擦,鬼知道我经历了什么?

面试阿里p7被问到的问题(当时我只知道第一个):@Conditional是做什么的?@Conditional多个条件是什么逻辑关系?条件判断在什么时候执...

面试了一个 31 岁程序员,让我有所触动,30岁以上的程序员该何去何从?

最近面试了一个31岁8年经验的程序猿,让我有点感慨,大龄程序猿该何去何从。

大三实习生,字节跳动面经分享,已拿Offer

说实话,自己的算法,我一个不会,太难了吧

程序员垃圾简历长什么样?

已经连续五年参加大厂校招、社招的技术面试工作,简历看的不下于万份 这篇文章会用实例告诉你,什么是差的程序员简历! 疫情快要结束了,各个公司也都开始春招了,作为即将红遍大江南北的新晋UP主,那当然要为小伙伴们做点事(手动狗头)。 就在公众号里公开征简历,义务帮大家看,并一一点评。《启舰:春招在即,义务帮大家看看简历吧》 一石激起千层浪,三天收到两百多封简历。 花光了两个星期的所有空闲时...

《Oracle Java SE编程自学与面试指南》最佳学习路线图2020年最新版(进大厂必备)

正确选择比瞎努力更重要!

《Oracle Java SE编程自学与面试指南》最佳学习路线图(2020最新版)

正确选择比瞎努力更重要!

都前后端分离了,咱就别做页面跳转了!统统 JSON 交互

文章目录1. 无状态登录1.1 什么是有状态1.2 什么是无状态1.3 如何实现无状态1.4 各自优缺点2. 登录交互2.1 前后端分离的数据交互2.2 登录成功2.3 登录失败3. 未认证处理方案4. 注销登录 这是本系列的第四篇,有小伙伴找不到之前文章,松哥给大家列一个索引出来: 挖一个大坑,Spring Security 开搞! 松哥手把手带你入门 Spring Security,别再问密...

字节跳动面试官竟然问了我JDBC?

轻松等回家通知

面试官:你连SSO都不懂,就别来面试了

大厂竟然要考我SSO,卧槽。

阿里面试官让我用Zk(Zookeeper)实现分布式锁

他可能没想到,我当场手写出来了

终于,月薪过5万了!

来看几个问题想不想月薪超过5万?想不想进入公司架构组?想不想成为项目组的负责人?想不想成为spring的高手,超越99%的对手?那么本文内容是你必须要掌握的。本文主要详解bean的生命...

自从喜欢上了B站这12个UP主,我越来越觉得自己是个废柴了!

不怕告诉你,我自从喜欢上了这12个UP主,哔哩哔哩成为了我手机上最耗电的软件,几乎每天都会看,可是吧,看的越多,我就越觉得自己是个废柴,唉,老天不公啊,不信你看看…… 间接性踌躇满志,持续性混吃等死,都是因为你们……但是,自己的学习力在慢慢变强,这是不容忽视的,推荐给你们! 都说B站是个宝,可是有人不会挖啊,没事,今天咱挖好的送你一箩筐,首先啊,我在B站上最喜欢看这个家伙的视频了,为啥 ,咱撇...

代码注释如此沙雕,会玩还是你们程序员!

某站后端代码被“开源”,同时刷遍全网的,还有代码里的那些神注释。 我们这才知道,原来程序员个个都是段子手;这么多年来,我们也走过了他们的无数套路… 首先,产品经理,是永远永远吐槽不完的!网友的评论也非常扎心,说看这些代码就像在阅读程序员的日记,每一页都写满了对产品经理的恨。 然后,也要发出直击灵魂的质问:你是尊贵的付费大会员吗? 这不禁让人想起之前某音乐app的穷逼Vip,果然,穷逼在哪里都是...

立即提问
相关内容推荐