当前位置: 首页 > 知识库问答 >
问题:

Java掷硬币(扫描器,字符串处理,增量运算符和算术)

南门鸿哲
2023-03-14

下面是一个简短的描述:

用户将输入一个“H”表示头部或一个“T”表示尾部,然后程序将打印出头部和尾部的总数和百分比。使用increment运算符在每次抛掷时递增抛掷次数。

不使用循环、ifs、fors等,我决定这个问题最接近的解决方案是使用comparteTo()这样的字符串方法和一个公式的组合来改变输出结果的增量值。

//假设扫描仪、标头等

    String coin;
    int z,x;


    System.out.println("For each coin toss enter either 'h' for heads or 't' for tails.");

    System.out.print("First Toss:");
    coin = keyboard.nextLine();
    x = coin.compareTo("h");//heads
    z = coin.compareTo("t");// tails

    x = ++x;  // if user inputs "h" returns 0 for heads and -12  ???
    z = ++z;  // if user inputs "t" returns 12 for heads and 0 for tails ??? 

    System.out.print("Second Toss:");
    toss = keyboard.nextLine();

    x = coin.compareTo("h");
    z = coin.compareTo("t");

    x = ++x+x; // if user inputs "h" returns 2 for heads and -22 for tails 
    z = ++z+z; // if user inputs "t" returns 26 for heads and 2 for tails
               // if user inputs "t" for both tosses returns 26 heads and 2 tails ????

    //Omitted con tosses 3 through 8 for demonstration.


    System.out.println("Number of heads:" + x);
    System.out.println("Number of tails:"+ z);
    System.out.println("Percent of heads: (x/8.0))");  
    System.out.println("Percent of tails:"+ (z/8.0)); 

共有1个答案

方心思
2023-03-14

compareto在string中比较两个字符串的词法API。理想情况下,它用于集合类别中的排序,该类别对添加到集合中的单个元素进行排序。返回值有助于确定各个元素的存储位置,以便集合中的所有元素都以排序格式存储。最好的例子是在TreeSet或Treemap中。

当比较字符串“t”“h”时,由于它们之间的字母表数之差为12,因此返回一个值12。

您可以使用coin.equalsignorecase(“h”)//heads,也可以使用tails

 类似资料:
  • 问题内容: 我对post 和pre 运算符感到困惑,例如以下代码 会打印10吗? 它打印10,但我希望它应该打印11 但是当我这样做 它会按照我的预期输出11,所以为什么x = x ++; 不会改变x的值? 问题答案: 否,正确的打印输出为10。理解结果背后原因的关键是预分配和后分配复合分配之间的差异。当使用预增量时,表达式的值在执行增量后获取。但是,当您使用后递增时,表达式的值 在 递增 之前

  • 目标 了解实例化 String 对象和设置其值的多种方法 了解字符串串联和方法链 熟悉 Java 语言的算术运算符 字符串 目前为止,您已经遇到过多种类型的 String。在 Java 语言中,字符串是 String 类型的一级对象,包含可帮助您处理它们的方法。 在 C 语言中,处理字符串需要大量精力,因为它们是您必须操作的 8 位字符组成的以 null 结尾的数组。(在字符串方面,与 C 语言最

  • 问题:编写一个名为wordWrap的方法,该方法接受表示输入文件的扫描器作为其参数,并将文件的每一行输出到控制台,对超过60个字符的所有行进行文字包装。例如,如果一行包含112个字符,则方法应将其替换为两行:一行包含前60个字符,另一行包含最后52个字符。包含217个字符的行应该被包装成四行:三行的长度为60,最后一行的长度为37。 我的代码: 输出中的问题: 预期产出: 生产产量: 我哪里做错了

  • 问题内容: 当我运行以下示例时,我得到输出0,2,1 我不明白为什么输出是0,2,1而不是0,2,2 问题答案: 意思是现在。调用打印,但返回0,所以和 在此之前,现在想象被调用并替换为0 所以 现在它将是 用简单的话(从这里 @ Piotr) “ i = i ++”大致翻译为 另一个这样的例子: 同样的基本原理

  • 问题内容: 我正在编写一个使用Event类的程序,该类中有一个日历实例和一个String类型的描述。创建事件的方法使用扫描仪获取月,日,年,小时,分钟和说明。我遇到的问题是Scanner.next()方法仅返回空格之前的第一个单词。因此,如果输入为“我的生日”,则该事件实例的描述就是“我的”。 我做了一些研究,发现人们使用Scanner.nextLine()解决此问题,但是当我尝试这样做时,它只是

  • 现在的Rust资料,无论是Book还是RustByExample都没有统一而完全的介绍Rust的操作符。一个很重要的原因就是,Rust的操作符号和C++大部分都是一模一样的。 一元操作符 顾名思义,一元操作符是专门对一个Rust元素进行操纵的操作符,主要包括以下几个: -: 取负,专门用于数值类型。 *: 解引用。这是一个很有用的符号,和Deref(DerefMut)这个trait关联密切。 !: