每行输入一个数,怎么结束这个循环呢

这回我不按空格隔开输入了,我要每行输入一个,怎么结束循环呢?

哎,只能每行当做字符串输入,最后一行碰到输入的那一行为空,结束循环。这样造成的结果就是最后会留出一个空行然后结束。尴尬也没办法。

    // 每行输入一个字符串,输入多个字符串
    public static void inputStr() {
        Scanner scanner = new Scanner(System.in);
        String nextLine = scanner.nextLine();
        while (nextLine != null && !nextLine.equals("")) {
            System.out.println(nextLine);
            nextLine = scanner.nextLine();
        }

        System.out.println("end of input string");
    }

那么比赛时这个就不适用了,可能是因为算法题目中用的是流的方式进行输入,最后不会输入多一个换行符,因而无法正确的结束输入而导致答案错误。

那么比赛请这么做吧,

public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);   
        while(in.hasNext()){
            String str = sc.nextLine();
            System.out.println(str);
        }
    }
}

 

最后想说一下nextInt、nextFloat方法不会接收回车符(13)、换行符(10),因此如果在nextInt()后增加nextLine()方法,对于nextInt()输入时的回车符(13)、换行符(10)会被nextLine()接收。造成可能你想用nextLine接收一个你想要的串,结果却接收到了\r\n。详细请看:https://blog.csdn.net/claram/article/details/52057562

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 好的,以下是回复: 可以使用两个嵌套的循环来实现输出n行数字金字塔的功能。具体实现方法如下: 1. 首先输入一个正整n,表示金字塔的行。 2. 然后使用两个嵌套的循环,外层循环控制行,内层循环控制每行输出的数字。 3. 在内层循环中,使用一个计器变量count,从1开始递增,每次输出count的值,并在输出后将count加1。 4. 在每行输出完毕后,需要换行,可以使用print()函实现。 5. 最后,整个金字塔输出完毕后,程序结束。 下面是具体的代码实现: n = int(input("请输入金字塔的行:")) for i in range(1, n+1): for j in range(1, i+1): print(j, end=" ") print() ### 回答2: 题目要求我们输入一个正整n,接着让我们输出n行数字金字塔。那么我们先来详细解析一下什么是数字金字塔。 数字金字塔是一种学图形。它是一个由数字排成的三角形,其中顶部的数字是1,下面一行是相邻两个数字之和,如下图所示: 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 现在我们来看一下如何用Python编写一个程序来完成这个任务。 首先,我们需要从用户输入获取正整n: n = int(input("请输入一个正整:")) 接着,我们需要使用嵌套循环来生成数字金字塔。外层循环从1到n,表示金字塔的行。内层循环从1到当前行i,表示每行数字。同,我们需要一个变量num来记录当前生成的数字。在内层循环中,我们先输出当前数字num,再将其加1,以便生成下一个数字。另外,我们需要在每行输出完后打印一个换行符,以便换到下一行。完整代码如下: n = int(input("请输入一个正整:")) num = 1 for i in range(1, n+1): for j in range(1, i+1): print(num, end=" ") num += 1 print() 代码执行后,输入正整n,便可输出n行数字金字塔。例如,输入n=5,输出如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 这就是用Python生成数字金字塔的方法。 ### 回答3: 题目描述: 输入一个正整n,输出n行数字金字塔。 解法分析: 这道题目可以使用嵌套循环来解决。外层循环控制行,内层循环控制每一行数字。我们可以设置一个变量 k,表示每一行数字的起始值,以及变量 m,表示每一行数字结束值。 对于每一行,我们可以将数字从 k 到 m 逐个输出。每输出一个数字,我们就判断一下当前的数字是否是该行的最后一个数字,如果是的话,我们就不按照原来的格式输出,而是直接输出一个换行符。否则,我们就按照原来的格式输出,即在数字后面输出一个空格。 在代码中,我们需要注意一下变量 k 和 m 的取值范围。由于我们是从 1 开始,所以 k 应该从 1 开始,而 m 的值应该是 2n-1。 代码实现: 下面是实现该题目的代码:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值