while求解

while求解

相关代码:

package com.imooc.flow2;

import java.util.Scanner;

public class Numberinput {

	public static void main(String[] args) {
		//循环输入数字1-10并输出,如果输入0则跳出循环
		Scanner s=new Scanner(System.in);
		int n;
		while(true) {
			n=s.nextInt();
			if(n==0)break;
			System.out.println(n);
		}
	}
}

为什么这里whiletrue不会死循环输出?

相关代码:

package com.imooc.flow2;

import java.util.Scanner;

public class Numberinput {

	public static void main(String[] args) {
		//循环输入数字1-10并输出,如果输入0则跳出循环
		Scanner s=new Scanner(System.in);
		int n=s.nextInt();
		while(true) {
			if(n==0)break;
			System.out.println(n);
		}
	}
}

为什么把int n移到while外面,就会死循环输出???

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,

1、当从键盘输入0是,n的值为0,if分支条件为真,执行break,跳出循环,循环结束;

    ​若输入不是0,则会循环从键盘录入数据,n=s.nextInt(),直至输入为0,循环结束。

http://img1.sycdn.imooc.com//climg/60c81e310946fc3205300182.jpg

2、当输入为0时,循环执行一次则结束;

    ​当输入为非0整数时,n==0条件为假不会执行break,循环条件为true,则会形成死循环。

http://img1.sycdn.imooc.com//climg/60c81d9e0923bc5505430237.jpg

祝学习愉快~

  • 做条咸鱼才最好 提问者 #1
    n=s.nextint() 这个就是从键盘按数字输入的意思吗?我还以为Scanner s=new Scanner是输入键盘数据
    2021-06-15 12:46:35
  • 同学你好,是的。int n = s.nextInt()表示的是从键盘输入整数,并赋值给整型变量n。

    祝学习愉快~

    2021-06-15 14:55:43
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师