java - 我是使用对象和类的新手。如何从用户创建的类中打印?

标签 java class printing

我创建了一个类,该类由掷骰子对象 6 次的程序使用。我的问题出在我的 printStats() 方法中,因为我不确定如何将统计信息打印回主类。具体来说,我收到两个错误,并且都显示“期望返回语句”。这是我的类,名为 Dice。

/*

import java.io.*;
import java.util.*;

  class Dice{

Random rnd=new Random();
int count1 = 0, count2 = 0, count3 = 0, count4 = 0, count5 = 0, count6 = 0;

String roll(){
    int a = rnd.nextInt(5);
    if(a == 0){
        count1++;
        return "1";
        }
    if(a == 1){
        count2++;
        return "2";
        }
    if(a ==2){
        count3++;
        return "3";
        }
    if(a == 3){
        count4++;
        return "4";
        }
    if(a == 4){
        count5++;
        return "5";
        }
    if(a == 5){
        count6++;
        return "6"; 
        }
    }
int printStats(){
        System.out.println("1:" + count1);
        System.out.println("2:" + count2);
        System.out.println("3:" + count3);
        System.out.println("4:" + count4);
        System.out.println("5:" + count5);
        System.out.println("6:" + count6);
    }

void reset(){
    count1 = 0;
    count1 = 0;
    count3 = 0;
    count4 = 0;
    `enter code here`count5 = 0;
    count6 = 0;
            }

            }

最佳答案

部分问题是您的 roll() 方法没有为每个可能的执行路径提供返回

现在,你和我都知道你的逻辑保证 if 语句之一将为 true,并且你将返回其中之一,但是因为你的所有return 语句位于 if 语句内,它不会编译。

共有三个简单的修复方法。

  1. if 语句列表更改为大型 if-else 结构,然后只需将 if(a==5) 更改为最后其他
  2. 使用 switch 语句,并使用用例 0-4,默认为 5。
  3. 只需在当前方法末尾、任何 if 语句之外添加 return ""; 即可。
<小时/>

对于 printStats() 方法,您只需将返回类型更改为 void

关于java - 我是使用对象和类的新手。如何从用户创建的类中打印?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20025396/

相关文章:

java - 如何将 Json 解析为另一个 Activity

Java 定义或初始化类的属性

c++ - CPP、错误、类、即使给出了声明也不匹配

jquery - css 旋转和对齐

python - 如何实时将 STDOUT 从导入的模块重定向到 python 中的 Tkinter Text Widget?

java - Spring Security iusse 运行应用程序时,创建 bean myUserDetailsS​​ervice 时出错

java - 使用底层请求/响应协议(protocol)实现 RPC(SIP 上的 JSON-RPC)

c# - 如何传递包含此的类对象并调用该类的方法

c# - 在多个页面上打印流程文档滚动查看器

Java,用户输入文件位置循环